【问题标题】:Json objects in array数组中的 Json 对象
【发布时间】:2014-01-24 15:02:53
【问题描述】:

我有一个包含许多 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 对象?

【问题讨论】:

  • 您预期的最终结果是什么?没看懂
  • 旁注(再次)。没有“JSON 对象”之类的东西。那就是 - 嗯?
  • 我试图格式化你的问题,但我还是不明白
  • 什么是jsonPassengerList? ...您为什么要将它推送到数组(我假设)5 次?

标签: javascript arrays json


【解决方案1】:

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

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

要将此对象添加到数组中,您可以这样做:

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

【讨论】:

    【解决方案2】:
    1. 您对术语有些困惑。这些是常规的旧 javascript 对象。谷歌 JSON 以获取更多信息。

    2. 从您的代码 sn-p 看来,您向数组中添加了五次相同的对象 (jsonPassengerList),而不是一次添加五个不同的对象。所以,它没有更新所有五个对象,它只更新一个。您已经引用了五次。

    【讨论】:

      【解决方案3】:

      问题是存储在jsonArray 对象中的每个对象实际上都是同一个jsonPassengerList 对象。

      如果您想要独立的列表,您必须为存储在jsonArray 中的每个列表使用一个新的数组实例。顺便说一句,jsonArray 很混乱,我宁愿调用变量passengerListStore 或类似的东西。 var 乘客列表商店 = [];

      //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
      });
      

      【讨论】:

        【解决方案4】:

        感谢答案,我用多维度 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);
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-08-11
          • 2020-09-12
          • 1970-01-01
          • 2020-08-02
          • 2016-05-31
          • 2021-05-18
          • 1970-01-01
          • 2011-12-24
          相关资源
          最近更新 更多