精华内容
下载资源
问答
  • 数据库中的json数组添加数据

    千次阅读 2020-05-07 12:36:02
    问题:怎样向数据库中的json数组添加数据 步骤: 参数 当前所要添加的数据 $z_id 1、先将json数据转化成数组 2.利用count($array) 当前数组的key值的条件 进行添加数据 3.最后$zidArr数组里就会有新...

    问题:怎样向数据库中的json数组添加数据

     

    步骤:

    参数 当前所要添加的数据 $z_id

    1、先将json数据转化成数组

    2.利用count($array) 为当前数组的key值的条件 进行添加数据

    3.最后$zidArr数组里就会有新添加的元素

    展开全文
  • java读取json文件 新增到数据库

    千次阅读 2019-01-02 09:48:24
    public void test2(){ // 读取文件数据 System.out.println("读取文件数据util");...D:/**.json"; StringBuffer strbuffer = new StringBuffer(); Long id = Long.valueOf(0...
       public void test2(){
          // 读取文件数据
          System.out.println("读取文件数据util");
          String pactFile = "D:/**.json";
          StringBuffer strbuffer = new StringBuffer();
          Long id = Long.valueOf(0);//字段1
          String  name = "";//字段2
          Long parentId = Long.valueOf(0);//字段3
          int lv = 0;//字段4
          File myFile = new File(pactFile);//"D:"+File.separatorChar+"**.json"
          //!myFile.exists()   判断文件是否存在  存在为!myFile.exists()即true
          if (!myFile.exists()) {
             System.err.println("Can't Find " + pactFile);
          }
          JSONArray jsonArray = null;
          try {
             //读取文件
             String input = FileUtils.readFileToString(myFile, "UTF-8");
             //将读取的文件转换为JSONObject 
             JSONObject jsonObject = JSONObject.fromObject(input);
             if (jsonObject != null) {
                //取出按钮权限的数据
                jsonArray = jsonObject.getJSONArray("list");
                System.out.println(jsonArray.size());
                //jsonArray.size()  json数据的大小(长度)
                //遍历jsonArray 转换格式,放入map集合中
                for(int i = 0; i < jsonArray.size(); i++){
                   id = Long.valueOf(jsonArray.getJSONObject(i).get("id").toString());
                   name = jsonArray.getJSONObject(i).get("name").toString();
                   parentId = Long.valueOf(jsonArray.getJSONObject(i).get("parentId").toString());
                   lv = 0;
                   Map map =new HashMap();
                   map.put("id",id);
                   map.put("name",name);
                   map.put("parentId",parentId);
                   map.put("agencyId",lv);
                   //新增到数据库
                   sysRegionService.insert(map);
                   //查看已执行次数
                   System.out.println("已执行:" + i);
                }
             }
          } catch (Exception e) {
             e.printStackTrace();
             jsonArray = null;
          }
          System.out.println("已执行完毕");
       }
    }
    
    展开全文
  • 因此,在关系型数据库中使用JSON时应当遵循一定的思想,从而既能受益于JSON的灵活性,又能发挥关系型数据库的强大功能。 本文根据实际工作中的经验,结合一些国内外现有的资料,总结了一些在关系型数据库中使用JSON...

    1. 前言

    1.1 概述

    当前,一些应用程序在数据库层使用 JSON格式的字段。JSON 有很好的灵活性,它可以自由地包含不同键。然后,关系型数据库对JSON的处理能力天生不足。因此,在关系型数据库中使用JSON时应当遵循一定的思想,从而既能受益于JSON的灵活性,又能发挥关系型数据库的强大功能。

    本文根据实际工作中的经验,结合一些国内外现有的资料,总结了一些在关系型数据库中使用JSON 的设计思想和注意事项。文章旨在指导读者更好地进行应用的数据库设计。

    本文使用的数据库是PostgreSQL。

    1.2一些术语

    1.2.1 JSON

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

     

    JSON建构于两种结构:

    1.名称/对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 associative array)。

    2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。

    JSON对象是一个无序的名称/对集合。一个对象以{ (左括号) 开始,以} (右括号) 结束。每个名称后跟一个 :(冒号);名称/对之间使用 ,(逗号 )分隔。例如:

    {"a": 1, "b": [1, 2, 3]}

    JSON数组是值(value)的有序集合。一个数组以[” 左中括号 开始, ]右中括号 结束。值之间使用, 逗号分隔。例如:

    [1, 2, "3", {"a": 4}]

    JSON的值(value)可以是双引号(””)括起来的字符串(string)、数值(number)truefalse null、对象(object)或者数组(array)。这些结构可以嵌套。

     

    2 JSON使用注意事项

    2.1 JSON字段设计思想

    1. JSON 只能作为一种辅助型的数据格式,不要试图用JSON 去取代表中大多数字段,也不要将不合适的属性放在JSON中[2]。

    2. JSON 格式的字段对数据库最好是透明的[2]。传统的关系型数据库并不提供JSON处理功能。近年来Oracle,PostgreSQL 和 MySQL 引入了JSON 处理功能,但功能有限。另外,关系型数据库的第一范式,要求所有字段都是原子性的(虽然我们不必严格遵守),这个规则应尽量遵守。

     

    3. 如果因业务需求,一些 JSON 格式的字段要用数据库处理,应该保证,JSON 结构尽量是单层的,由简单的键值对组成。这样便于读取,修改和扩展。如果它有嵌套结构,也应保证内层结构对数据库尽可能透明。

     

    例如,这里的JSON是单层的。

    {

        "doorNo": "1",

        "secret": "15F50xyeyEE3nLqop7ub7fd7d7R1zPYgMNBg/D+6t8+el8gnxl4Wc0ZBZlkgkMdb",

        "readerInOrOut": "1",

        "controllerLevel": "3",

        "devEngModeEnable": null,

        "secParentIndexCode": null,

        "acsReaderCardCapacity": "0",

        "ReaderFaceCapacity": "0",

        "ReaderFingerCapacity": "0"

    }

     

    2.2 JSON字段设计思想

    使用关系型数据库查询JSON 中的值时,应该明确地给定JSON 键的路径。不能在键的未知的情况下,通过值来获取它的键。就如同在关系型数据库,我们不能在字段未知的情况下,通过值来获取字段名一样。

     

    上面的例子也说明,不是所有的属性都适合放在JSON 中。

    2.3 什么样的属性不适合放在 JSON 中?

    不是所有属性都适合放在JSON中。不合理,不周全的设计会不仅会会影响程序的性能,还会给软件的开发和维护造成困难。因此,我们应该在追求JSON 的灵活性和发挥关系型数据库的功能之间取得平衡。

    下面是不适合放在JSON中的属性:

    1.作为重要的选择条件,或用于连接(join)、排序(使用了order by)、去重(使用了distinct)或分组(使用了group by)运算的属性[3][5]。尽管我们可以通过数据库提供的函数或操作符获取 JSON 中的属性,并通过它进行上述运算,但处理较复杂,性能不佳,从2.2节的案例中就可以看出。因此,这样的属性应当作为原子性的字段存在。

    以下面的人员表tb_person为例:

    create table tb_person

    (

             person_id varchar(48) default gen_random_uuid() not null,

            person_index_code varchar(48),

            person_name varchar(64),

            sex integer,

            organization_indexcode varchar(48),

           organization_name varchar(48),

            status integer,

            phone varchar(64),

            email varchar(64),

            age integer,

            birthday date,

            create_time timestamp with time zone default current_timestamp(3),

            update_time timestamp with time zone default current_timestamp(3),

            extended_attribute jsonb,

            constraint uk_tb_person_person_index_code unique (person_index_code, status),

            constraint pk_tb_person primary key (person_id, status)

    );

    人员表tb_person这些属性中,人员id(person_id),编码(person_index_code),所属组织的编码(organization_indexcode),当前状态(status)和创建时间(create_time)都是业务中重要的选择条件;而所属组织的编码(organization_indexcode)是人员表和组织表的关联字段,也做为分组运算的条件(我们可以根据组织对人员分组);创建时间(create_time)是常用的排序字段。它们都需要作为独立的字段,而不适合放在JSON中。

     

    2.某个属性的读取和更新频率比其他属性频繁很多,则它们不适合放在同一个 JSON 字段中。因为 JSON 字段占用空间很大,读写代价都很高。因此为提高性能,应将读写频繁的属性作为单独的字段。

    例如,对于一个对于一个停车场表来说,它的属性,总车位数和当前可用车位数就不能放在同一个JSON中,如果使用JSON的话。因为前者通常是固定的,而后者是动态变化的。

    3.为了提高查询速度而设置的冗余属性。这样的属性通常依赖于某些非主属性,放在JSON中则不符合提高性能的目的,而且不易修改。

    例如,人员表tb_person中,非主属性有组织编码(organization_indexcode)和组织名称(organization_name)。组织名称依赖于组织编码,会随组织编码的变更而变更,不适合放置在JSON中。

    4.本身定义不合理的,与其他属性重复的,或可能会被弃用的属性。从数据库的层面看,JSON是一个整体,单个属性的缺陷就是整个JSON的缺陷。而且修改或删除这样的有缺陷属性,代价会比修改或删除单独字段的代价高。因此,这一类属性,应当予以删除或改造。

    2.4 什么样的属性可以用JSON 表示?

    1. 用户定义的属性,可以放在 JSON 中[4]。

    2. 若属性是一个集合,则可以用JSON数组表示[2][4]。

    3. 若表中有较大比例的行没有该属性,或该属性为空,则可以将该属性放在JSON字段中。

    4. 对数据库透明,仅由上层程序处理的属性,可以放在JSON字段中。这样的JSON 字段一般很少在数据库中修改,而JSON 作为一个整体在程序中传输[3]。

     

    2.5 将独立字段合并为JSON 的注意事项

    如果因业务原因,需要将表中的几个字段合并为JSON,除了前几节的事项外,还需要注意以下几点:

    1. JSON 结构尽量简单,理想的情况下,合并后的JSON 的键和值分别对应原有的字段和它的值。

    2. 用来合成 JSON 的原字段最好是原子性的,或者对数据库是透明的。这样的字段便于合并,在 JSON 中也容易解析。

    3. 最后,如果你需要用一些非原子性的字段构造一个复杂的 JSON,则应该详细地写出构造的方法步骤,再进行编码。

     

    2.6 修改JSON字段的数据的注意事项

    如果需要修改数据库中 JSON 字段的数据,除了上面的事项,还需要注意以下几点:

    1. 增加,修改或删除JSON 字段中的键值对时,应该明确地给定表上的选择条件和JSON 键的路径,从而使我们能够直接通过给定条件获取表中需要更改的行,并能够根据 JSON 键的完整路径来添加,修改或删除键值对。如果新增的值,或者修改后的值依赖于 JSON 中某个键的值,则被依赖的键的路径也应该是明确的。

    2. 修改JSON的结构应该慎重。JSON 字段的结构在确定之后,不应该发生较大变化。

    参考文献

         [1] 介绍 JSON

         [2] Colin M. Answer: Storing JSON in database vs. having a new column for each key?. 2017-09-15.  

         [3]  Vishal Kumar. Answer: Is it okay to use JSON as a database. 2018-06-26.

         [4] Arun B Chandrasekaran. Using JSON Datatype In Relational Database To Develop Flexible/Configurable Software. 2018-11-11

        [5] Bill Karwin. Answer: Why not use relational databases to store JSON data (like a primary key field, and a BLOB field for JSON data in a MySQL table) instead of using NoSQL databases (MongoDB, etc.)?. 2019-04-14

     

    展开全文
  • 搭建本地数据库接口(JSON-SERVER)

    千次阅读 2019-11-15 18:24:52
    搭建本地数据库接口(JSON-SERVER) 可访问: http://jsonplaceholder.typicode.com https://github.com/typicode/json-server 目录搭建本地数据库接口(JSON-SERVER)1. 安装JSON服务器2. 创建文件夹3. 初始化...

    搭建本地数据库接口(JSON-SERVER)

    可访问:
    http://jsonplaceholder.typicode.com

    https://github.com/typicode/json-server

    1. 安装JSON服务器

    1)window

    npm install -g json-server
    

    2)mac os

    sudo npm install -g json-server
    

    注意:mac os需要在npm前加sudo,window则不需要。

    2. 创建文件夹

    将路径引入到当前所创建的文件夹下

    cd 文件夹名
    

    3. 初始化package.json

    npm init --Yes
    

    4. 安装所有模块

    npm install json-server --save
    
    • –save把所有模块放置package.json

    5. 启动json服务器

    json-server --watch db.json
    
    • db.json 为自命名文件,自动创建
    • 将json-server --watch db.json放置package.json的scripts里面
    • test可修改
      在这里插入图片描述

    6. 启动

    npm run test
    

    test也就是配置package.json中的名字

    7. 访问主页面

    http://localhost:3000

    8. 使用 json-server

    <!-- 获取所有用户信息 -->
    http://localhost:3000/users
    
    <!-- 获取id为1的用户信息 -->
    http://localhost:3000/users/1
    
    <!-- 获取公司的所有信息 -->
    http://localhost:3000/companies
    
    <!-- 获取单个公司的信息 -->
    http://localhost:3000/companies/1
    
    <!-- 获取所有公司id为3的用户 -->
    http://localhost:3000/companies/3/users
    
    <!-- 根据公司名字获取信息 -->
    http://localhost:3000/companies?name=Huawei
    
    <!-- 根据多个名字获取公司信息 -->
    http://localhost:3000/companies?name=Huawei&name=baidu
    
    <!-- 获取一页中只有两条数据 -->
    http://localhost:3000/companies?_page=1&_limit=2
    
    <!-- 升序排序 asc升序  desc降序 -->
    http://localhost:3000/companies?_sort=name&_order=asc
    
    <!-- 获取年龄30及以上的 -->
    http://localhost:3000/users?age_gte=30
    
    <!-- 获取年龄在3040之间 -->
    http://localhost:3000/users?age_gte=30&age_lte=40
        
    <!-- 搜索用户信息 -->
    http://localhost:3000/users?q=h
    
    

    9. 其它请求方式

    以上是get请求方式,要做其它的请求方式,需借助软件:Postman

    10.配置Postman

    在这里插入图片描述

    11.选择想要请求的方式即可

    在这里插入图片描述

    <!-- 删除users里id为5的用户 -->		DELETE删除
    http://localhost:3000/users/5
    
    <!-- 跟新users里id为4的name值 -->	PATCH跟新
    http://localhost:3000/users/4
    raw {"name":"张肖某"}
    
    POST	新增
    

    12.也可以把jsonplaceholder里面的数据引入,方法:

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • #接收数据 #def RecvFromForm(): form = cgi.FieldStorage() #getURL = form.getvalue('netURL') #接受xmlhttp.open("GET","/cgi-bin/SqltoHtml.py?q="+str,true)传递的参数 getNum = form.getvalue( 'q') def ...
  • views.py: def adminEchartIncome(request): ret = models.incomeAccount.objects.all().order_by(&quot;dayIncome&...json&quot;,ret) # print(ret) json_list = [] for i in ..
  • 一个练习的新增部分, 在页面给数据库传送数据,要新增数据是员工编号,员工姓名,联系电话,家庭地址 jQuery版本是3.2.1的,插件是layui 这个练习是单表新增,要添加的内容都是在一个表内,所以难度不是很大(多...
  • C#实现json对象数据批量插入数据库

    千次阅读 2017-05-12 17:18:40
    熟悉JQgrid的同志们都知道,JQgrid获取选中行的数据相当简单,唯独要注意的是,选中的数据json对象格式的,需要传后台再导入到数据库中,起初为了赶项目,采取了一种比较”偷懒“的方式,就是每取一条数据记录...
  • //判断是那种操作,新增、修改、删除  $('#showAssLm').dialog({  title:'修改联系人',  closed:false,  showType:null, //'show'  autoOpen:true  });  }  function del(id){  $....
  •  2、nifi默认查出来的数据为Avro格式,所以需要ConvertAvroToJSON把Avro格式转化为json格式的数据  3、使用ConvertJSONToSQL把json数据转化sql语句  4、使用PutSQL把数据存入数据库。  5、同步的数据重复...
  • Java操作数据库新增数据的大概流程: 1)创建数据库连接(这里用的是MySQL数据库) private static String driver = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql://localhost:3306/test"; //数据源(mysql)的...
  • 然后你可以取出来存到数据库 public class Answer { String openId; String questionId; String selectName; public String getOpenId() { return openId; } public void setOpenId(String openId) { this....
  • Mongodb数据库DBObject对象和Json数据的转化(一.用Gson操作) 转自:http://zyjustin9.iteye.com/blog/2018699 by Mongodb官方提供的Java驱动,保存与读取,需要的者是DBObject对象,这是一个接口,...
  • jqGrid 新增行 保存新增的行到数据库

    万次阅读 2017-06-15 10:09:57
    给jqGrid新增行,并且把jqgrid中的数据保存到数据库
  • MySQL5.7.x新增JSON数据类型的解析

    千次阅读 2020-07-04 11:18:59
    测试表和测试数据 我们先创建示例表然后入几条测试数据: create table tbl_json ( id int(11) not null auto_increment, info json default null, primary key (id) ) ENGINE=InnoDB default charset=utf8; ...
  • .cs Dish dishModel = new Dish();  public string Json = ""; ///  /// 获取菜品信息  ///  private void edit()  {  int dishid = 0;  int ShopID
  • 我们通过两个例子来学习Js处理数据新增行: 例子一字符串拆分 按照原始数据列”aaa bbb ccc ddd”把数据分成4行。 比如我们有原始数据行如下: id group person 1 A aaa bbb ccc ddd 我们需要获取A组中都有哪些...
  • 这周在开发中遇到一些所需数据但是不在数据库中,需要我们调用API接口向服务器请求信息下来,但是那些信息都是json格式的数据不能直接插入到数据库中。 一、首先在pom.xml中的dependencies标签中copy下面的代码,...
  • 微信小程序云开发——常用功能2:操作云数据库一键批量导入数据(导入json文件) 今天我们要添加100条数据。下面的过程是先创建一条记录,然后导出这条数据json文件中是如何编辑字段的,然后仿照这个格式添加其他...
  • Mongodb官方提供的Java驱动,保存与读取,需要的者是DBObject对象,这是一个接口,实现put,get等方法,跟map类似,如 果我们要直接把普通的java对象保存mongodb,就需要先转换成DBObject对象,或者直接实现DBObject...
  • // 根据id去除一个json数据的重复项 function filterObj(objcArray){ for (var i = 0; i < objcArray.length; i++) { for (var j =i+1; j <objcArray.length; ) { if (objcArray[i].id == objc...
  • Postgre SQL 中Json字段新增数据

    千次阅读 2018-06-19 14:32:09
    select json字段名::jsonb || ‘新增字段JSon格式’::jsonb from 表名; 例: select invoice_base_info::jsonb || '{"info":"male"}'::jsonb from nash_invoice; 来源:...
  • 本例在role目录下创建了一个名role.json的文件,内容 其中role.Role roleapp名 Role模型的类名 [ { "model":"role.role", "pk":1, # 不指定,可以省略 "fields":{ "name":"SuperAdmin", ...
  • 用navcat在某个表中新家了一个字段,字段是小写的,不被识别,加上双引号就可以使用,将字段改大写后问题得以解决。 <问题三>JsonObject的非空判断 jsonObject.isNull() 1.从map中取出不存在的键值对时不会...
  • VS导入数据到数据库

    千次阅读 2019-01-18 09:43:49
    作用:导入操作主是一个将数据新增到数据库的操作。 说明:点击 图1 中“导入”按钮,然后弹出所要导入数据的基本格式,如图2所示: 图2 导入弹出窗体 接着选择文件后缀名xls的excel文档,然后鼠标点击“导入...
  • 最近在做项目的时候遇到个全新的知识,就是关于树形图的查询、新增、修改、删除节点的名字,并且将新增数据保存到数据库里面去,那么怎么做到的呢? 举一个例子:效果图 当我选中节点并点击加号的图标的时候,在...
  • 首先要新增这两个存储过程 新增存储过程字符串数组条件查询 CREATE OR REPLACE FUNCTION json_arr2text_arr(_js json) RETURNS text[] AS $$ DECLARE anyArray text[]; begin SELECT ARRAY(SELECT json_array_...
  • $filename = "../public/static/data/location.txt";//文件相对路径 $json_string = file_get_contents($filename);//读取json内容 $data = json_decode($json_string); foreach ($data as $key =>$va
  • 小程序云开发向数据库新增数据

    千次阅读 2019-05-06 20:25:00
    小程序云开发向数据库新增数据,基本操作在新建完一个云项目后都有了,右键上传部署login云函数后,就可以在模拟器中简单地操作数据库了 这是databaseGuide.js生成时就给出的代码,增删改查都需要先将相关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,011
精华内容 17,204
关键字:

新增到数据库的数据为json