JsonNode、ObjectNode和ArrayNode

2023-12-20 11:12

本文主要是介绍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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/515829

相关文章

objectMapper、ObjectNode、JsonNode调用接口时进行参数组装

objectMapper、ObjectNode、JsonNode用于调用接口时进行参数组装···  public String sendText( List< String > listUser, String content ) throws JsonProcessingException{if ( listUser.size() <= 0 ){return "用户ID为空!";}if

JsonNode、ObjectNode和ArrayNode

我个人不喜欢fastjson,但是项目中很多地方用到json字符串转换对象但又不想创建pojo 所以使用jackson的JsonNode、ObjectNode和ArrayNode就非常好用,万能对象,这三 个对象是非常全面的,感兴趣的可以看下源码 JsonNode 只读,通常由ObjectMapper解析json字符串得到 ObjectNode 可修改, 继承JsonNode ArrayNode

利用jackson的JsonNode封装工具类快速获取json字符串中任意节点的json数据

文章目录 关联资源实现效果实现代码实现思路梳理 关联资源 代码地址视频讲解: 利用jackson中的JsonNode取值封装工具类xxx.xxx.xx的方式取值结合泛型封装工具类取值并返回对应类型 实现效果 工具类实现 xxx.xxx.xxx的形式直接从json字符串中获取任意节点字段的值,如下图所示: 实现代码 当前引入的jackson的依赖为: <depend