参见英文答案 >
Convert JSON String to Pretty Print JSON output using Jackson6个
我需要使用Jackson创建一个JSON字符串,如下所示.
我知道类似的问题已在这里得到解答: Creating a json object using 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(); JsonNode rootNode = mapper.createObjectNode(); JsonNode childNode1 = mapper.createObjectNode(); ((ObjectNode) childNode1).put("name1","val1"); ((ObjectNode) childNode1).put("name2","val2"); ((ObjectNode) rootNode).set("obj1",childNode1); JsonNode childNode2 = mapper.createObjectNode(); ((ObjectNode) childNode2).put("name3","val3"); ((ObjectNode) childNode2).put("name4","val4"); ((ObjectNode) rootNode).set("obj2",childNode2); JsonNode childNode3 = mapper.createObjectNode(); ((ObjectNode) childNode3).put("name5","val5"); ((ObjectNode) childNode3).put("name6","val6"); ((ObjectNode) rootNode).set("obj3",childNode3); String jsonString = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(rootNode); System.out.println(jsonString);