Link JsonNode 数组到 ArrayNode

Link array of JsonNodes to ArrayNode

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

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

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

[{
    "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" 键以便此后 link 其他 JsonNodes。我错过了什么?

在将值推送到 ObjectNode 之前,您需要创建成员节点。它只是将 keys/values 保留在 Map 幕后。

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

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