2012-09-20 133 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"});