将值添加到JSON数组

时间:2012-09-20 16:13:06

标签: jquery json append

所以我有一个看起来像这样的数组

[{"subbasinID":"1"},{"subbasinID":"2"}, etc....]

我需要在每条记录中添加更多值。如何添加到现有阵列,使其看起来像这样

[{"subbasinID":"1","test":"1","name":"john"},{"subbasinID":"2","test":"0"}]

我将知道我需要添加的下一个组的名称和值。我假设我必须识别我想要的记录,然后通过查找subbasinID来追加。不确定怎么样!谢谢!

6 个答案:

答案 0 :(得分:2)

您拥有的是对象的列表(数组)。您所需要的只是迭代对象并向其添加元素。

var t = [{"subbasinID":"1"},{"subbasinID":"2"}/*, etc....*/]
t[0]["name"] = "John";

答案 1 :(得分:1)

我不确定我是否完全理解您的问题,但在JavaScript中添加对象非常简单。如果您愿意,可以使用jQuery .each,但它也没有必要:

for (var x = 0; x < arrayVar.length; x++) {
   arrayVar[x].test = test;
   if (name) {
      arrayVar[x].name = name;
   }
}

答案 2 :(得分:1)

这里的json对象是一个数组..所以你可以访问像2D数组这样的值并操纵它。

 var json = [{"subbasinID":"1","test":"1","name":"john"},{"subbasinID":"2","test":"0"}]



  json[0]["test"] = "1" ;   OR   json[0].test = "1"

   json[0]["name"] = "john"

    json[1]["test"] = "0" ; 

一旦您知道要添加的字段的名称,就可以提出一种通用方法。

答案 3 :(得分:1)

这是另一个通过查找ID并添加它。

var arr = [{"subbasinID":"1"},{"subbasinID":"2"}];

$.each(arr, function(i, arrVal)  {    
   if (arrVal.subbasinID === "1") {    
      arrVal.test = "1";
      arrVal.name = "john";
   }    
});

答案 4 :(得分:0)

假设你真的有一个“JSON数组”而不只是一个javascript数组,最简单的是

  1. 将其解析为javascript数组
  2. 添加您的值
  3. 再次将其序列化为JSON
  4. 像这样:

    var obj = JSON.parse(str);
    obj[0]['test']='1';
    ...
    str = JSON.stringify(obj);
    

    如果你不确定“JSON”一词,我会建议你:http://en.wikipedia.org/wiki/JSON

答案 5 :(得分:0)

您可以使用拼接功能在JSON数组中添加和删除项目。第一个0是您要添加的位置(第一个位置使用0),如果要删除项目,则指定第二个位置。

dataArray.splice(0, 0,
{id: "7", name: "Douglas Adams", type: "comedy"});