2014-01-24 220 views
0

我有一個包含許多JSON對象的數組。Json陣列中的對象

我想將新行插入一個JSON對象,但JavaScript將行推送到數組中的所有JSON如何修復它或可以使用其他數據而不是數組?

我的代碼是這樣的:

for (var i = 0; i < 5; i++) { 
    jsonArray.push(jsonPassengerList); 
} 
jsonArray[0].push({ 
    "ID":0, 
    "Name":"aa", 
    "LastName":"", 
    "Nationality":"", 
    "QuoteType":"", 
    "Title":"", 
    "Age":0 
}); 

我怎樣才能解決這個或我怎麼能處理多個JSON對象?

+1

什麼是你最終要達到的這個問題THX?我不明白 – Dalorzo

+1

附註(再次)。沒有「JSON對象」這樣的東西。這說 - 嗯? –

+3

我試圖格式化你的問題,但我仍然不明白 – mplungjan

回答

0

的答案我解決多dimesion JSON

var jsonAll="["; 

for (var i = 0; i < 5; i++) { 
    jsonAll+=""+JSON.stringify(jsonPassengerList)+","; 

if(...) 
{ 
    jsonAll=jsonAll.substring(0, jsonAll.length - 2); 
    jsonAll+=",{\"ID\": 0, \"Name\": \"\", \"LastName\": \"\", \"Title\": \"\", \"Nationality\": \"\", \"Age\": 0, \"QuoteType\": \"\"}"; 
    jsonAll+="],"; 
} 

} 


    jsonAll=jsonAll.substring(0, jsonAll.length - 1); 
    jsonAll+="]"; 

    var JsonData=JSON.parse(jsonAll); 
0

我想,這就是你的意思。如果你有一個對象是這樣的:

var obj1= { 
     "ID":0, 
     "Name":"aa", 
     "LastName":"", 
     "Nationality":"", 
     "QuoteType":"", 
     "Title":"", 
     "Age":0 
    } 

爲了這個對象添加到一個數組,你可以這樣做:

var arr = []; 
arr.push(obj1); 
0
  1. 你在術語有點困惑。這些是常規的舊JavaScript對象。谷歌JSON的更多信息。

  2. 它看起來像從你的代碼片段中添加同樣的對象(jsonPassengerList)到你的數組五次,而不是五個不同的對象一次。所以,它不更新所有五個對象,它的更新只是一個。你已經參考了五次。

0

的問題是,存儲在jsonArray對象中的每個對象實際上是同一jsonPassengerList對象。

如果你想要獨立的列表,你必須爲jsonArray中存儲的每個列表使用一個新的數組實例。順便說一句,jsonArray是相當混亂,我寧願打電話變量passengerListStore或類似的東西。 var passengerListStore = [];

//initialize empty lists  
for (var i = 0; i < 5; i++) { 
    passengerListStore.push([]); 
} 


//push a new passenger into the first passenger list 
passengerListStore[0].push({ 
    "ID":0, 
    "Name":"aa", 
    "LastName":"", 
    "Nationality":"", 
    "QuoteType":"", 
    "Title":"", 
    "Age":0 
});