使用Java中的Jackson创建JSON对象



我需要使用Jackson创建一个JSON字符串。我知道在这里已经回答了类似的问题:使用Jackson创建JSON对象

,但我的预期JSON字符串与上面的示例中的一个有点不同。

如何仅使用Jackson在Java中形成以下格式化的JSON对象?另外,我不希望创建一个单独的pojo来实现这一目标。

预期输出:

{
    "obj1": {
        "name1": "val1",
        "name2": "val2"
    },
    "obj2": {
        "name3": "val3",
        "name4": "val4"
    },
    "obj3": {
        "name5": "val5",
        "name6": "val6"
    }
}

尝试以下:

ObjectMapper mapper = new ObjectMapper();
ObjectNode rootNode = mapper.createObjectNode();
ObjectNode childNode1 = mapper.createObjectNode();
childNode1.put("name1", "val1");
childNode1.put("name2", "val2");
rootNode.set("obj1", childNode1);
ObjectNode childNode2 = mapper.createObjectNode();
childNode2.put("name3", "val3");
childNode2.put("name4", "val4");
rootNode.set("obj2", childNode2);
ObjectNode childNode3 = mapper.createObjectNode();
childNode3.put("name5", "val5");
childNode3.put("name6", "val6");
    
rootNode.set("obj3", childNode3);

String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode);
System.out.println(jsonString);