JSON对象相互转换

目录

[String --> JsonNode对象](#String --> JsonNode对象)

[JsonNode对象 --> String](#JsonNode对象 --> String)

[Map --> JsonNode对象,object>](#Map --> JsonNode对象,object>)

[JsonNode数组 --> List>集合](#JsonNode数组 --> List>集合)

[List> --> JsonNode](#List> --> JsonNode)

获取JsonNode中某个key的值

获取JsonNode字段下的某个数组


String --> JsonNode对象

java 复制代码
// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

JsonNode对象 --> String

java 复制代码
// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode jsonResult= objectMapper.readTree(result);

// JsonNode转换成String
result = objectMapper.writeValueAsString(jsonResult);

Map<String,Object> --> JsonNode对象

java 复制代码
// 创建一个 ObjectMapper 实例  
ObjectMapper objectMapper = new ObjectMapper();

Map<String,Object> map = new HashMap<>();
map.put("name","张三");
map.put("age",30);

// 将Map转换为JsonNode
JsonNode jsonNode = objectMapper.valueToTree(map);

JsonNode数组 --> List<Map<String,Object>>集合

java 复制代码
// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

// 获取data字段下的data数组
JsonNode dataArrayNode = rootNode.get("data").get("data");

// 转换JsonNode数组成List<Map<String,Object>>集合
List<Map<String, Object>> dataList = objectMapper.convertValue(dataArrayNode, new TypeReference<List<Map<String, Object>>>() {});

List<Map<String,Object>> --> JsonNode

java 复制代码
 // 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

// 获取data字段下的data数组
JsonNode dataArrayNode = rootNode.get("data").get("data");

// 转换成List<Map<String,Object>>集合
List<Map<String, Object>> dataList = objectMapper.convertValue(dataArrayNode, new TypeReference<List<Map<String, Object>>>() {});

// 用来收集结果的集合
ArrayNode arrayNode = objectMapper.createArrayNode();

// 循环遍历
dataList.forEach(item ->{
    // 给结果集设置值
    arrayNode.add(objectMapper.valueToTree(item));
}

获取JsonNode中某个key的值

java 复制代码
// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

// 获取errcode
JsonNode errcode = rootNode.get("errcode");

获取JsonNode字段下的某个数组

java 复制代码
// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();

// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

// 获取data字段下的data数组
JsonNode dataArrayNode = rootNode.get("data").get("data");
相关推荐
小诸葛的博客25 分钟前
client-go如何监听自定义资源
开发语言·后端·golang
入 梦皆星河25 分钟前
go原理刨析之channel
开发语言·后端·golang
Pandaconda30 分钟前
【新人系列】Golang 入门(十二):指针和结构体 - 上
开发语言·后端·golang·go·指针·结构体·后端开发
6<732 分钟前
【go】类型断言
开发语言·后端·golang
旷野本野1 小时前
【Java】Maven
java·开发语言·maven
我自纵横20231 小时前
事件处理程序
开发语言·前端·javascript·css·json·ecmascript
坊钰1 小时前
【MySQL 数据库】数据类型
java·开发语言·前端·数据库·学习·mysql·html
药尘师1 小时前
idea运行tomcat项目,很慢的问题
java·ide·intellij-idea
Kale又菜又爱玩1 小时前
Sentinel全面解析与实战教程
java·spring·微服务·sentinel·springboot·springcloud
唐人街都是苦瓜脸1 小时前
SpringBoot的简单介绍
java·spring boot·后端