在Json数组中添加新的fied

时间:2015-12-23 10:27:35

标签: javascript

我想更新一个json对象

让我们说我的json对象是(该变量用于测试目的,实际上我从api接收json)

var json = [
    {
        user: "value1",
        country: "value2",
        name: "value3"
    }
]

现在使用javascript或jquery,我想添加例如以下字段

firstname: "value" 

所以我最后的json应该是

[
    {
        user: "value1", 
        country: "value2", 
        name: "value3", 
        firstname: "value"
    }
]

我已尝试在堆栈溢出中找到的所有内容

json["firstname"] = "value"

jquery.extend 

json.push 

但这不会更新我的json变量或者让我的数据超出()

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

由于对象在数组中,您需要使用json[0]["firstname"] = "value"json[0]将从作为对象的数组中检索第一个元素

var json = [{
  user: "value1",
  country: "value2",
  name: "value3"
}]
json[0]["firstname"] = "value";

document.write('<pre>' + JSON.stringify(json,null,3) + '</pre>');

如果数组包含多个元素,则迭代它们并添加属性,您可以使用 map()

var json = [{
  user: "value1",
  country: "value2",
  name: "value3"
}, {
  user: "valude1ds",
  country: "valuesds2",
  name: "valdsdsue3"
}]
json = json.map(function(v) {
  v["firstname"] = "value";
  return v;
});

document.write('<pre>' + JSON.stringify(json, null, 3) + '</pre>');

答案 1 :(得分:0)

$.each(json,function(key,value){
     json[key]["firstname"] = "value";
});

上面的代码将为json数组中的所有对象添加firstname