从JsonNode数组中获取元素

huangapple go评论79阅读模式
英文:

Get element from JsonNode array

问题

我有这个 JSON:

{
    "text": [
        {"a": 1},
        {"b": 2}
    ]
}

我有这段代码:

JsonNode jsonNode = (new ObjectMapper()).readTree(jsonString);

// 从 "text" 中获取第一个元素
// 这只是对我想要的内容的解释

String aValue = jsonNode.get("text").get(0)
                        .get("a")
                        .asText();

我如何在不映射为对象的情况下完成这个,或者做类似于 JsonNode[] array,其中 array[0] 代表 aarray[1] 代表 b

英文:

I have this json:

{
    "text":[
        {"a":1},
        {"b":2}
    ]
}

I have this code:

JsonNode jsonNode = (new ObjectMapper()).readTree(jsonString);

//get first element from "text"
//this is just an explanation of what i want

String aValue = jsonNode.get("text")[0]
                        .get("a")
                        .asText();

How I can done that, without mapping it to an object?

Or do something like JsonNode[] array and array[0] represent a and array[1] represent b

答案1

得分: 17

如果您想显式遍历 JSON 并找到 `a` 的值,您可以按照指定的 JSON 这样做。

    String aValue = jsonNode.get("text").get(0).get("a").asText();

要找到 `b` 的值将会是

    String bValue = jsonNode.get("text").get(1).get("b").asText();

您还可以遍历文本数组中的元素,并获取 `a` 和 `b` 的值,如下所示

    for (JsonNode node : jsonNode.get("text")) {
        System.out.println(node.fields().next().getValue().asText());
    }

这将在控制台上打印如下内容

    1
    2
英文:

If you want to explicitly traverse through the json and find the value of a , you can do it like this for the json that you specified.

String aValue = jsonNode.get("text").get(0).get("a").asText();

Finding the value of b would be

String bValue = jsonNode.get("text").get(1).get("b").asText();

You can also traverse through the elements within the text array and get the values of a and b as

for (JsonNode node : jsonNode.get("text")) {
    System.out.println(node.fields().next().getValue().asText());
}

And that would print the below on the console

1
2

huangapple
  • 本文由 发表于 2020年5月30日 00:26:29
  • 转载请务必保留本文链接:https://go.coder-hub.com/62090484.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定