我有一个ArrayNode看起来像这样:

[{
    "A": "a",
    "B": "b",
    "C": "c"
}]


我想手动添加一个JsonNode s数组:

[{
    "A": "a",
    "B": "b",
    "C": "c",
    "D": [{
            "D": "d",
            "e": "e"
         }]
}]


我正在考虑做这样的事情:

final ObjectNode jsonNode = nodeFactory.objectNode();
jsonNode.set(name) // name == "D", but method prototype is set(string, JsonNode)
arrayNode.add(jsonNode);


问题是set方法必须将JsonNode作为第二个参数。我只想创建“ D”键,以便此后链接其他JsonNodes。我想念什么?

最佳答案

在将值推入ObjectNode之前,需要创建成员节点。它只是在幕后将键/值保留在Map中。

ObjectNode node = nodeFactory.objectNode();
node.set("D", buildArrayNode());
...

private ArrayNode buildArrayNode() {
    // build your node here
    ArrayNode arrayNode = nodeFactory.arrayNode();
    arrayNode.add(...);
}

10-05 19:14