我想使用 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);
你应该使用地图。其中数据是地图中的键,对象列表是值。这是您的列表 [] 是值。在你的列表中,你有一个对象。在爪哇...
Map<String, List<Parents>> studentsParent = HashMap<>(); class Parent{ String parent; String child; parent(String parent, String child){
this.parent = parent;
this.child = child; }
} List<Parents> parents = new ArrayList<>();
studentsParent.put (data, Parents.add( Parent p = new Parent("A", "B"))); [
{
"parent": "A",
"child": "B"
},{
"parent": "G",
"child": "K"
}
]