【问题标题】:Android adding JSONObject to JSONArray with KeyAndroid 使用 Key 将 JSONObject 添加到 JSONArray
【发布时间】:2013-12-31 10:44:28
【问题描述】:

您好,我正在尝试创建一个带有标题的按字母顺序排列的列表,所以我想要一个带有“B”键的 JSONObjects 数组,例如在该对象内我将添加一个 JSONObjects 数组,其中包含姓名的联系人以键或“B”开头

有谁知道如何使用键将 JSONObject 添加到 JSONArray 中?这样我就可以检索特定的对象

【问题讨论】:

    标签: android json


    【解决方案1】:

    为了达到您的要求,您的 JSON 对象应该是这样的

    {
       "A":[
          {
             "name":"aaa"
          },
          {
             "name":"aba"
          }
       ],
       "B":[
          {
             "name":"bbb"
          },
          {
             "name":"bba"
          }
       ]
    }
    

    上述 Object 的伪实现如下所示:

    //Maint list object
        JSONObject objMainList = new JSONObject();
    
        //prepare item array for "A"
        JSONArray arrForA = new JSONArray();
        JSONObject itemA = new JSONObject();
        itemA.put("name", "aaa");
        arrForA.put(itemA);
    
      //prepare item array for "B"
        JSONArray arrForB = new JSONArray();
        JSONObject itemB = new JSONObject();
        itemB.put("name", "bbb");
        arrForB.put(itemB);
    
        //Finally add item arrays for "A" and "B" to main list with key
        objMainList.put("A", arrForA);
        objMainList.put("B", arrForB);
    

    更新:检查“A”或“B”..是否存在

    if(objMainList.has("A")){
    
        }
    

    【讨论】:

    • 你知道我将如何检测 JSONArry arrForA 是否已经存在于 JSONObject 中,所以我不会继续添加多个版本
    【解决方案2】:

    试试这个方法:

    {"Contacts": //JSONObject
      {
        "B"://JSONArray..
        [
            {"ContactName":sdfsdf,"ID":900,"Number":1368349}, 
            {"ContactName":adsdfd,"ID":1900,"Number":136856},  
             {"ContactName":adglkhdofg,"ID":600,"Number":136845}
       ],
      "C":[
             {"ContactName":alkghoi,"ID":900,"Number":1368349},
             {"ContactName":wetete,"ID":1900,"Number":136856}, 
             {"ContactName":dfhtfh,"ID":600,"Number":136845}
         ]
          .....//and so on.. 
          }
    }
    

    【讨论】:

      【解决方案3】:

      在我看来,您要求的是地图的功能。然后,您可以使用行为类似于 Map.Entry 的对象数组。 类似的东西:

      [{key:a,value:<some-value>},...]
      

      此外:为什么不将您的数据序列化为联系人列表并以编程方式添加“排序”行为(使用字母索引)?

      【讨论】:

        猜你喜欢
        • 2012-08-21
        • 2021-06-21
        • 2018-11-14
        • 1970-01-01
        • 1970-01-01
        • 2016-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多