java - 在 Java 中使用 Jackson 创建 JSON 对象

标签 java json jackson

我需要使用 Jackson 创建如下 JSON 字符串。 我知道已经在这里回答了类似的问题:Creating a json object using jackson

但我预期的 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);

关于java - 在 Java 中使用 Jackson 创建 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40967921/

相关文章:

javascript - 如何清除 JSON 的缓存

json - 忽略Gson反序列化中的一些嵌套项

json - jackson-dataformat-xml 将@ResponseBody 转换为 XML

java - JsonNode 实例何时为 null?

java - 创建用于验证的通用枚举包装器

java - 如何以 Java 格式打印嵌套 Hashmap

java - 我无法删除文件,因为它似乎是 'open'

java - 如何在 Grizzly 2.3 中获取 X.509 客户端证书(使用客户端身份验证时)

c# - WEB API + ASP.NET 尝试以 json 格式显示来自 WEB.API 的数据

java - 为什么 Jackson 序列化时省略了小数点为零的 Double?