杰克逊,读/写嵌套属性

rva*_*lez 1 java json jackson

使用Jackson,我正在创建一个Json对象,如下所示:

{"A": {
    "B": {
        "C": {
            "D": 1
        }
    }
}}
Run Code Online (Sandbox Code Playgroud)

与下一个代码

ObjectNode rootNode = JsonNodeFactory.instance.objectNode();
ObjectNode aNode = JsonNodeFactory.instance.objectNode();
ObjectNode bNode = JsonNodeFactory.instance.objectNode();
ObjectNode cNode = JsonNodeFactory.instance.objectNode();
cNode.put("D", 1);
bNode.set("C", cNode);
aNode.set("B", bNode);
rootNode.set("A", aNode);
Run Code Online (Sandbox Code Playgroud)

有没有更简单的创建方法?就像是:

ObjectNode rootNode = JsonNodeFactory.instance.objectNode();
rootNode.set("A/B/C/D",1);
Run Code Online (Sandbox Code Playgroud)

还读取类似的对象是否有一种简单的方法来获取“ D”的值?

ima*_*ban 5

是的,您可以使用以下方法创建嵌套结构:

ObjectNode root = JsonNodeFactory.instance.objectNode();
root.with("A").with("B").with("C").put("D", 1);
Run Code Online (Sandbox Code Playgroud)