本文主要是介绍JsonNode、ObjectNode和ArrayNode,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我个人不喜欢fastjson,但是项目中很多地方用到json字符串转换对象但又不想创建pojo
所以使用jackson的JsonNode、ObjectNode和ArrayNode就非常好用,万能对象,这三
个对象是非常全面的,感兴趣的可以看下源码
JsonNode 只读,通常由ObjectMapper解析json字符串得到
ObjectNode 可修改, 继承JsonNode
ArrayNode 可修改, 继承JsonNode
ObjectNode类似fastjson的JSONObject
ArrayNode类似fastjson的JSONArray
ObjectNode objectNode0 = JsonNodeFactory.instance.objectNode();
objectNode0.put("sub", "child"); ObjectNode objectNode = JsonNodeFactory.instance.objectNode();
objectNode.put("aa","aa");
objectNode.put("a1",111);
objectNode.put("a2","123");
objectNode.put("a4",true);
objectNode.put("a5",objectNode0);
System.out.println(objectNode); ArrayNode arrayNode = JsonNodeFactory.instance.arrayNode();
arrayNode.add(123);
arrayNode.add("abd");
arrayNode.add(true);
arrayNode.add(objectNode0);
System.out.println(arrayNode);// JsonNode
String json = "{\n" + " \"id\": \"AaEXKZGjdBAQVxtqofPymQmJhuuuupGD\",\n" + " \"roleName\": \"临时角色uuuu\",\n" + " \"roleCode\": \"test20uuuu33120\",\n" + " \"description\": \"这是新建的临时角色123\",\n" + " \"createBy\": \"admin\",\n" + " \"createTime\": \"2023-09-10 19:57:26\",\n" + " \"updateBy\": null,\n" + " \"updateTime\": \"2023-09-10 19:57:26\"\n" + "}";
try { JsonNode jsonNode = new ObjectMapper().readTree(json); System.out.println(jsonNode);
} catch (IOException e) {
}
上面内容输出
{"aa":"aa","a1":111,"a2":"123","a4":true,"a5":{"sub":"child"}}
[123,"abd",true,{"sub":"child"}]
{"id":"AaEXKZGjdBAQVxtqofPymQmJhuuuupGD","roleName":"临时角色uuuu","roleCode":"test20uuuu33120","description":"这是新建的临时角色123","createBy":"admin","createTime":"2023-09-10 19:57:26","updateBy":null,"updateTime":"2023-09-10 19:57:26"}
jackson版本
<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.9.4</version>
</dependency>
这篇关于JsonNode、ObjectNode和ArrayNode的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!