json动态添加问题,高手来啊

时间:2021-10-10 22:36:42

  var contacts = {
            "people": [{
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter",
                "email": "jason@servlets.com"
            },
            {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }]
        };
里面的firstname,lastname,email这种对象的个数是动态的,从页面里拿进来的
怎么实现动态添加
var arrays=new Array();
var json {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }];

arrays.push(json);


可以这样一个一个添加
但是“people”这属性就没了?

11 个解决方案

#1


把动态数据作为参数传递进来,然后for循环赋值不可以吗

#2


引用 1 楼 lrbyantai 的回复:
把动态数据作为参数传递进来,然后for循环赋值不可以吗

能写代码吗?
我也知道应该怎么样
但是json的api不熟

#3


我的是json2.js

#4


关注 学习  加顶

#5


可以用数组  比如data[0][0].firstName(第一个[]里面的值 是第几个json值)                  data[1][0].firstName   这是取的第2个。后面的[]  这个 如果放的值是个list 可以遍历

这样说你明白吗

#6


我不懂json,我还以为是js呢,只能提供一种思路了。。。=_=!

#7


我不知道我理解的对不对。
你的原始的变量里面,是一个map,people=....
但是你push的时候并没有指定将它push到people这个属性里去。
我认为你应该是先取得contacts.people,再在这个基础上进行push操作的。
或者push以后替代原有的people属性。

#8


  var contacts = {
            "people": [{
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter",
                "email": "jason@servlets.com"
            },
            {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }]
        };

contacts 是一个对象,它的属性people, contacts.people是一个数组
[{
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter",
                "email": "jason@servlets.com"
            },
            {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }]
再分析contacts.people,它是个长度为3的数组
contacts.people[0]={
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            }
contacts.people[1]={fir....},
contacts.people[2]={fir....},
然后contacts.people[0]本身又是个json格式的对象,contacts.people[0].firstName="Brett"
就这样而已
所以你要添加一个,不是对contacts进行添加,而是对contacts.people进行添加,OK??

#9


确切的说json也是js一种对象,只不过要有固定格式而已。所有可以将json对象看成普通的js对象,然后操作~!

#10



var mjson = {
  "firstName": "Elliotte", 
  "lastName": "Harold",
  "email": "elharo@macfaq.com"
  };
contacts.people[contacts.people.length]=mjson;

#11


#1


把动态数据作为参数传递进来,然后for循环赋值不可以吗

#2


引用 1 楼 lrbyantai 的回复:
把动态数据作为参数传递进来,然后for循环赋值不可以吗

能写代码吗?
我也知道应该怎么样
但是json的api不熟

#3


我的是json2.js

#4


关注 学习  加顶

#5


可以用数组  比如data[0][0].firstName(第一个[]里面的值 是第几个json值)                  data[1][0].firstName   这是取的第2个。后面的[]  这个 如果放的值是个list 可以遍历

这样说你明白吗

#6


我不懂json,我还以为是js呢,只能提供一种思路了。。。=_=!

#7


我不知道我理解的对不对。
你的原始的变量里面,是一个map,people=....
但是你push的时候并没有指定将它push到people这个属性里去。
我认为你应该是先取得contacts.people,再在这个基础上进行push操作的。
或者push以后替代原有的people属性。

#8


  var contacts = {
            "people": [{
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter",
                "email": "jason@servlets.com"
            },
            {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }]
        };

contacts 是一个对象,它的属性people, contacts.people是一个数组
[{
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            },
            {
                "firstName": "Jason",
                "lastName": "Hunter",
                "email": "jason@servlets.com"
            },
            {
                "firstName": "Elliotte",
                "lastName": "Harold",
                "email": "elharo@macfaq.com"
            }]
再分析contacts.people,它是个长度为3的数组
contacts.people[0]={
                "firstName": "Brett",
                "lastName": "McLaughlin",
                "email": "brett@newInstance.com"
            }
contacts.people[1]={fir....},
contacts.people[2]={fir....},
然后contacts.people[0]本身又是个json格式的对象,contacts.people[0].firstName="Brett"
就这样而已
所以你要添加一个,不是对contacts进行添加,而是对contacts.people进行添加,OK??

#9


确切的说json也是js一种对象,只不过要有固定格式而已。所有可以将json对象看成普通的js对象,然后操作~!

#10



var mjson = {
  "firstName": "Elliotte", 
  "lastName": "Harold",
  "email": "elharo@macfaq.com"
  };
contacts.people[contacts.people.length]=mjson;

#11