-1

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

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

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

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

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

4

6 回答 6

3

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

var t = [{"subbasinID":"1"},{"subbasinID":"2"}/*, etc....*/]
t[0]["name"] = "John";
于 2012-09-20T16:17:35.883 回答
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" ; 

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

于 2012-09-20T16:23:08.177 回答
1

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

for (var x = 0; x < arrayVar.length; x++) {
   arrayVar[x].test = test;
   if (name) {
      arrayVar[x].name = name;
   }
}
于 2012-09-20T16:17:08.790 回答
1

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

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

$.each(arr, function(i, arrVal)  {    
   if (arrVal.subbasinID === "1") {    
      arrVal.test = "1";
      arrVal.name = "john";
   }    
});
于 2012-09-20T16:56:03.407 回答
0

假设您确实有一个“JSON 数组”而不仅仅是一个 javascript 数组,最简单的方法是

  1. 将其解析为 javascript 数组
  2. 添加您的价值观
  3. 再次将其序列化为 JSON

像这样 :

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

如果您不确定“JSON”术语,我建议您这样做:http ://en.wikipedia.org/wiki/JSON

于 2012-09-20T16:15:26.547 回答
0

您可以使用 splice 函数在 JSON 数组中添加和删除项目。第一个 0 是您要添加的位置(使用 0 表示第一个位置),第二个是您指定的是否要删除项目。

dataArray.splice(0, 0,
{id: "7", name: "Douglas Adams", type: "comedy"});
于 2017-08-17T13:57:13.367 回答