Javascript 数组中的Json对象

Javascript 数组中的Json对象,javascript,arrays,json,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":"",

我有一个包含许多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
});
var obj1=   {
         "ID":0,
         "Name":"aa",
         "LastName":"",
         "Nationality":"",
         "QuoteType":"",
         "Title":"",
         "Age":0
    }
for(变量i=0;i<5;i++){
jsonArray.push(jsonPassengerList);
}
jsonArray[0]。推送({
“ID”:0,
“名称”:“aa”,
“姓氏”:“,
“国籍”:“,
“QuoteType”:“,
“名称”:“名称”,
“年龄”:0
});

我如何解决这个问题,或者如何处理多个JSON对象?

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

 for (var i = 0; i < 5; i++) {
    jsonArray.push(jsonPassengerList);
 }
 jsonArray[0].push({
     "ID":0,
     "Name":"aa",
     "LastName":"",
     "Nationality":"",
     "QuoteType":"",
     "Title":"",
     "Age":0
});
var obj1=   {
         "ID":0,
         "Name":"aa",
         "LastName":"",
         "Nationality":"",
         "QuoteType":"",
         "Title":"",
         "Age":0
    }
要将此对象添加到数组,可以执行以下操作:

var arr = [];
arr.push(obj1);
  • 你对术语有点困惑。这些是常规的旧javascript对象。谷歌JSON获取更多信息

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


  • 问题在于
    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
    });
    
    //初始化空列表
    对于(变量i=0;i<5;i++){
    passengerListStore.push([]);
    }
    //将新乘客推到第一个乘客列表中
    passengerListStore[0]。推送({
    “ID”:0,
    “名称”:“aa”,
    “姓氏”:“,
    “国籍”:“,
    “QuoteType”:“,
    “名称”:“名称”,
    “年龄”:0
    });
    
    Thx我用多维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);
    
    var jsonAll=“[”;
    对于(变量i=0;i<5;i++){
    jsonAll+=“+JSON.stringify(jsonPassengerList)+”,”;
    如果(…)
    {
    jsonAll=jsonAll.substring(0,jsonAll.length-2);
    jsonAll+=“,{\'ID\'”:0,\'Name\':\“\”,\'LastName\':\“\”,\'Title\':\“\”,\'National\':\“\”,\'Age\':0,\'QuoteType\':\“\”;
    JSONAL+=“],”;
    }
    }
    jsonAll=jsonAll.substring(0,jsonAll.length-1);
    JSONAL+=“]”;
    var JsonData=JSON.parse(jsonAll);
    
    您预期的最终结果是什么?我(又)没有收到它的旁注。没有所谓的“JSON对象”。就是这么说的-嗯?我试图格式化你的问题,但我仍然不明白什么是
    jsonPassengerList
    。。。为什么要将它推到和数组(我假设)5次?