首页 > 解决方案 > JSON 包含具有特定键和值的对象

问题描述

我想使用 Jackson 检查 JSON 是否包含具有特定键和值的对象。

例如

[
  {
    "name": "test1",
    "value": [
      "test1Value"
    ]
  },
  {
    "name": "test2",
    "value": [
      "test2Value"
    ]
  },
  {
    "name": "test3",
    "value": [
      true
    ]
  }
]

之后:

JsonNode json = MAPPER.readTree(jsonString);

我想做一个功能hasObject(json, "name", "test2");

我怎样才能做到这一点?我也可以使用java 8。

谢谢

标签: javajsonjackson

解决方案


好的,我想我找到了一种方法。

它使用Apache Commons Collections依赖项。

boolean found = false;
for (JsonNode field : IteratorUtils.toList(json.elements())) {
    if (field.has("name") && field.get("name").textValue().equals("test2")) {
        found = true;
        break;
    }
}

但我更喜欢 java8 风格的解决方案!


推荐阅读