jquery json 修改或插入 数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery json 修改或插入 数据相关的知识,希望对你有一定的参考价值。

我想问一下,利用jquery 对json 数据直接 插入或是修改。如这个已有的json格式
["name":"张三","age":"22","info":["a":"lao","b":"fa"],"name":"李四","age":"23","info":["a":"nao","b":"fa1"]]
如果数据多了,采用循环话重写是可以达到插入或是修改那样速度慢了。我想是对name修改名字,不要循环直接对json修改或是插入不是拼字符串重写,能不能写个小例子?

json的用途是数据传输,如对其直接进行操作。效率确实慢,所以不推荐这么操作,就算写出了js,用户体验也很差。所以不建议在前段进行数据操作。就算要操作,那json先转成array(),然后操作数组。
建议,或者让后端处理好后,把更新好的json传到前段。
或者前段把需要修改的地方发给后端,由后台服务器完成,那效率会高很多。追问

数组 与 json 是可以的吧。有没有jquery 数组 增删改查吧。

参考技术A 可以

使用Javascript或JQuery将数据插入JSON对象

最初我的变量是空的。

var data = [];

插入记录之后应该是,

data = [
  { "date" : "2013-01-01", "open" : 45 },
  { "date" : "2013-02-01", "open" : 50 }
];

将新属性插入现有数据,

data = [
  { "date" : "2013-01-01", "open" : 45 , "close": 49},
  { "date" : "2013-02-01", "open" : 50 , "close": 60}
];

我们如何使用JavaScript或J Query处理这两个场景?

答案

这很简单。找到下面的代码段。

第一种情况,

data.push({ "date" : "2013-01-01", "open" : 45 },
          { "date" : "2013-02-01", "open" : 50 })

/* Data is 
   [{ "date" : "2013-01-01", "open" : 45 },
    {"date" : "2013-02-01", "open" : 50 }] */

第二种情况,

data = data.map(item => {item.close='30';return item})
/* Data is 
   [ { date: '2013-01-01', open: 45, close: '30' },
     { date: '2013-02-01', open: 50, close: '30' } ] */
另一答案

您也可以使用$ .each来实现

var data = [{ "date" : "2013-01-01", "open" : 45 }, { "date" : "2013-02-01", "open" : 50 }];
var result = [];
var newData = {};
var dataValLen = 0;
$.each(data, function (i, dataVal) {
    dataValLen = $.map(dataVal, function(n, i) { return i; }).length;       
    $.each(dataVal, function (index, value) {
        newData[index] = value;
        if (i == dataValLen - 1)
            newData['open'] = 45;
    });
    result[i] = newData;
});
console.log(result);

以上是关于jquery json 修改或插入 数据的主要内容,如果未能解决你的问题,请参考以下文章

如何用jquery读取json文件里面的数值并且修改保存

用Jquery读取JSON数据显示在jtemplates后,怎么去修改

Qt 操作Json格式文件(创建插入解析修改删除)

mysql数据库中,如何对json数据类型的值进行修改?通过json_set函数对json字段值进行修改?

jquery处理json数据

javaweb我想在当前页面直接修改表中数据而不需要单独调到新的页面修改