将JsonNodes的数组链接到ArrayNode

时间:2015-07-07 13:30:18

标签: java json jackson

我有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。我错过了什么?

1 个答案:

答案 0 :(得分:2)

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

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

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