英文:
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]
代表 a
,array[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
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论