在Java中使用Jackson创建JSON对象

在Java中使用Jackson创建JSON对象,java,json,jackson,Java,Json,Jackson,我需要使用Jackson创建一个JSON字符串,如下所示。 我知道这里已经回答了类似的问题: 但我期望的JSON字符串与上面示例中的有点不同 如何仅使用Jackson在Java中形成以下格式的JSON对象? 此外,我不喜欢创建单独的POJO来实现这一点 预期产出: { "obj1": { "name1": "val1", "name2": "val2" }, "obj2": { "name3": "val3",

我需要使用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);

@如果你看到我的问题和你提到的问题的输出格式,它们有点不同。在我的问题中,我需要输出的格式与上面提到的格式完全相同。因此,您想将此JSON字符串转换为java POJO?@arsendavtyan91否,我需要它本身作为JSON字符串。输出是JSON字符串。你的意见是什么?这个问题不是重复的。不应该被标记为重复。我尝试了这一点,但我一直得到ObjectNode无法解析为类型。这会在添加的字符串中添加反斜杠。如何避免反斜杠?