使用java将jsonobjects添加到jsonarray时避免重复

我有一个对象列表,正在转换为 JSONArray。我正在遍历 JSONObjects 并制作一个 JSONObjects 数组。


现在,我想避免将重复对象插入到 JSONArray 中。


请在下面找到我的java代码。


JSONArray responseArray1 = new JSONArray();

if (!itemList.isEmpty())

{

  jsonArray = new JSONArray(itemList);

  for (int i = 0; i < jsonArray.length(); i++)

  {

    JSONObject jsonObj = jsonArray.getJSONObject(i);

    JSONObject responseObj = new JSONObject();

    String attr_label = jsonObj.optString("attr_label");

    if(StringUtils.equalsIgnoreCase(attr_label, "long_description")) {

        long_description = jsonObj.optString("value");

    }

    else if(StringUtils.equalsIgnoreCase(attr_label, "description")) {

        description = jsonObj.optString("value");

    }

    responseObj.put("id", jsonObj.opt("id")); // i will get duplicate id

    responseObj.put("code", jsonObj.opt("code")); // i will get duplicate code

    responseObj.put("long_description", long_description);

    responseObj.put("description", description);

    responseArray1.put(responseObj);


  }

}

请找到我的实际 jsonArray :


[  

   {  

      "code":"xyaz",

      "attr_label":"long_description",

      "id":"12717",

      "value":"Command Module"

   },

   {  

      "code":"xyaz",

      "attr_label":"description",

      "id":"12717",

      "value":"Set Point Adjustment"

   },

]

我期待像下面的 jsonArray :


[  

   {  

      "code":"xyaz",

      "id":"12717",

      "long_description":"Command Module"

      "description" : "Set Point Adjustment"

   }

]


Helenr
浏览 367回答 2
2回答

繁星点点滴滴

创建一个临时数组列表并在该 arrayList 中添加唯一代码并检查它是否已存在于 arrayList 中然后不要再放这个String code = jsonObj.opt("code");if(!arrayList.contains(code)){&nbsp; &nbsp; arrayList.add(code);&nbsp; &nbsp; responseObj.put("id", jsonObj.opt("id"));&nbsp;&nbsp; &nbsp; responseObj.put("code", jsonObj.opt("code"));&nbsp;&nbsp; &nbsp; responseObj.put("long_description", long_description);&nbsp; &nbsp; responseObj.put("description", description);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java