首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:仅当其中一个元素不存在时,如何将JSON对象添加到JSON数组中

Java:仅当其中一个元素不存在时,如何将JSON对象添加到JSON数组中
EN

Stack Overflow用户
提问于 2018-11-26 13:04:00
回答 1查看 437关注 0票数 0

假设我有JSON对象的JSON数组(在JSON对象内部)。

代码语言:javascript
复制
{
  data:
    [
      {id:45, building:1, lane: 6},
      {id:58, building:1, lane: 9},
      {id:46, building:2, lane: 4},
      {id:51, building:2, lane: 9},
      {id:40, building:3, lane: 2},
      {id:39, building:4, lane: 3}
  ]
}

我希望循环遍历这个数组,并将每个JSON对象添加到一个新的JSON数组中,但前提是某个键(building)的值还没有添加到新的JSON数组中。

例如,如果我遍历JSON数组并获得id:45,我希望将该对象添加到我的新JSON数组中,但前提是没有一个具有键值对building:1的对象。因为它是第一个对象,所以它将被添加到新的数组中。

假设我迭代的第二个对象是id:58。由于我的新JSON数组已经有一个带有building:1的对象,所以我不想将该对象添加到我的新数组中。

我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-26 13:16:18

我没有亲自测试这个,但它应该能用。

代码语言:javascript
复制
    JSONArray arr = //your data object
    JSONArray newArr = new JSONArray();
    arr.stream().forEach(el -> {
        Integer val = (Integer) ((JSONObject) el).get("building");
        if (((List<Integer>) newArr.parallelStream().map(obj -> (Integer) ((JSONObject) obj).get("building"))
                .filter(obj -> obj == val).collect(Collectors.toList())).isEmpty()) {
            newArr.add(el);
        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53481751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档