在Json数组中添加新的封地

add new fieds in Json array

本文关键字:添加 Json 数组      更新时间:2023-09-26

我想更新一个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变量,也不会将我的数据放在()之外

有什么建议吗?

由于对象在数组中,您需要使用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>');

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

上面的代码将把名字添加到json数组中的所有对象