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");
相关推荐
pan_junbiao9 分钟前
Spring框架的设计模式
java·spring·设计模式
远方16099 分钟前
0x-2-Oracle Linux 9上安装JDK配置环境变量
java·linux·oracle
北执南念15 分钟前
CompletableFuture+线程池使用案列
java
黄交大彭于晏1 小时前
发送文件脚本源码版本
java·linux·windows
钮钴禄·爱因斯晨1 小时前
Java 面向对象进阶之多态:从概念到实践的深度解析
java·开发语言·数据结构
鸽子炖汤1 小时前
Java中==和equals的区别
java·开发语言·jvm
有个傻瓜1 小时前
PHP语言核心技术全景解析
开发语言·kubernetes·php
hstar95271 小时前
二、即时通讯系统设计经验
java·架构
菥菥爱嘻嘻1 小时前
JS手写代码篇---手写ajax
开发语言·javascript·ajax
江梦寻1 小时前
MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
开发语言·后端·python·macos·架构·策略模式