2012-09-20 111 views
-1

所以我有一个数组,看起来像这样值添加到一个JSON数组

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

我需要更多的值添加到每个记录。如何添加到现有阵列所以它可能是这个样子

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

我会知道这个名字,我需要添加下一个组的值。我假设我必须确定我想要的记录,然后通过查找subbasinID进行追加。不知道如何!谢谢!

+0

您实际上想要扩展现有对象(它是数组的一个元素),但不是将新元素推送到此数组中。这些元素究竟应该如何改变? – raina77ow

+0

“我将知道我需要添加的下一组的名称和价值”是什么意思? –

+0

所以我设置阵列,以便我有大约100个亚流域。然后,我将循环访问该数组外部的一堆数据,并在其中添加我需要的内容。例如,如果我发现subbasinID:1有水,那么我需要加水和它的价值。所以它看起来像“水”:子流域内的“12”:1。 – jeynon

回答

2

你有什么是对象的列表(阵列)。所有你需要的是迭代对象并添加元素。

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

,这只会将约翰添加到第一个元素(0)? – jeynon

+0

@jeynon是的,如果你想将它添加到所有对象中,那么你需要用'for'循环来循环数组 –

0

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

  1. 解析成一个JavaScript数组
  2. 再次为JSON添加你的价值观
  3. 序列化

像这样:

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

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

+0

我不认为他有一个JSON字符串,我认为他已经有一个可用的JSON对象。不知道,但。 –

+0

@ExplosionPills这是什么意思,一个“JSON对象”?如果你的意思是可能没有JSON参与,我也怀疑它。 –

+0

我想我应该只说“一个对象” –

1

不知道我完全理解你的问题,但在JavaScript中添加对象非常简单。您可以使用jQuery .each如果你喜欢,但它不是必需的两种:

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

这里的JSON对象是一个Array ..这样你就可以访问值就像一个二维数组和操纵这个..

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" ; 

你可以想出一个办法广义一旦你知道了您想要添加的字段的名称..

1

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

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

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

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

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