我想使用 Jackson 导航到特定的 JSON,然后通过 ObjectMapper 发送值。如果 JSON 只是一个像这样的简单数组,我目前可以实现此目的:
[
{
"parent": "A",
"child": "B"
},{
"parent": "G",
"child": "K"
}
]
我的 Java 代码如下所示并且可以运行。
ObjectMapper mapper = new ObjectMapper();
Row[] row;
row = mapper.readValue(json, Row[].class);
但是当 JSON 更加嵌套时,如下所示:
{
"data": [
{
"parent": "A",
"child": "B"
},{
"parent": "G",
"child": "K"
}
]
}
我不确定需要做什么才能达到相同的效果。
Row 类只是一个标准类,具有父属性和子属性及其 getter 和 setter。没什么特别的。
最佳答案
您可以首先使用 readTree()
获取 JSON 字符串的树表示形式。然后使用 JSON 指针 ( RFC-6901 ) 导航到您要查找的 JsonNode
想要开始反序列化。之后,使用 treeToValue()
将树反序列化为 Row[]
:
JsonNode rootNode = mapper.readTree(json);
JsonNode dataNode = rootNode.at("/data");
Row[] rows = mapper.treeToValue(dataNode, Row[].class);
关于java - 导航到特定的 JSON 节点并使用 ObjectMapper,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57940271/