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");
相关推荐
翔云API1 分钟前
身份证识别接口的应用场景和作用
运维·服务器·开发语言·自动化·ocr
学java的小菜鸟啊15 分钟前
第五章 网络编程 TCP/UDP/Socket
java·开发语言·网络·数据结构·网络协议·tcp/ip·udp
zheeez19 分钟前
微服务注册中⼼2
java·微服务·nacos·架构
立黄昏粥可温19 分钟前
Python 从入门到实战22(类的定义、使用)
开发语言·python
PerfMan22 分钟前
基于eBPF的procstat软件追踪程序垃圾回收(GC)事件
linux·开发语言·gc·ebpf·垃圾回收·procstat
程序员-珍22 分钟前
SpringBoot v2.6.13 整合 swagger
java·spring boot·后端
徐*红30 分钟前
springboot使用minio(8.5.11)
java·spring boot·spring
聆听HJ30 分钟前
java 解析excel
java·开发语言·excel
溪午闻璐34 分钟前
C++ 文件操作
开发语言·c++
AntDreamer34 分钟前
在实际开发中,如何根据项目需求调整 RecyclerView 的缓存策略?
android·java·缓存·面试·性能优化·kotlin