数组中的Json对象

时间:2014-01-24 15:02:53

标签: javascript arrays 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对象?

4 个答案:

答案 0 :(得分:0)

我想,这就是你的意思。如果你有这样一个对象:

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

要将此对象添加到数组,您可以执行以下操作:

var arr = [];
arr.push(obj1);

答案 1 :(得分:0)

  1. 你对术语有点困惑。那些是常规的旧javascript对象。 Google JSON获取更多相关信息。

  2. 从您的代码片段看,您将相同的对象(jsonPassengerList)添加到您的数组五次,而不是一次添加五个不同的对象。因此,它不会更新所有五个对象,它只更新一个。你引用了五次。

答案 2 :(得分: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
});

答案 3 :(得分:0)

感谢您使用多维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);