如何使用Jackson从JSON对象内部的数组中检索值

时间:2018-08-20 02:51:16

标签: java arrays json java-8 jackson

简而言之,我如何以非链接方式使用杰克逊检索{“ value1”:123“}?

{
  "aaa": [
      {
        "value1": "123"
      }
  ],
  "bbb": [
      {
          "value2": "456"
      }
  ]
}

我尝试使用: jsonNode.at("/aaa[Array][0]),但我得到了缺少的节点作为响应。

任何帮助都会很好。

3 个答案:

答案 0 :(得分:1)

使用 node.path("aaa").get(0) 是从数组中检索第一项的方法。任何其他想法,如 node.path("aaa[0]") 或 node.path("aaa/0") 都不起作用。

答案 1 :(得分:0)

正确的json表达式应为“ / aaa / 0 / value1”

使用jsonNode.at(“ / aaa / 0 / value1”)

答案 2 :(得分:0)

使用以下代码:

    JsonNode node = mapper.readTree(json);
    System.out.println(node.path("aaa").get(0)); // {"value1":"123"}
  1. 使用jackson-databind
  2. 使用此
      

    node.path(“ aaa”)。get(0).get(“ value1”)// 123。