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");
相关推荐
serendipity_hky8 分钟前
【go语言 | 第2篇】Go变量声明 + 常用数据类型的使用
开发语言·后端·golang
报错小能手26 分钟前
STL_unordered_map
开发语言·c++·哈希算法
爱笑的眼睛1137 分钟前
超越剪枝与量化:下一代AI模型压缩工具的技术演进与实践
java·人工智能·python·ai
CreasyChan42 分钟前
C#特性(Attributes)详解
开发语言·c#
阿里云云原生42 分钟前
Android App 崩溃排查指南:阿里云 RUM 如何让你快速从告警到定位根因?
android·java
历程里程碑44 分钟前
C++ 9 stack_queue:数据结构的核心奥秘
java·开发语言·数据结构·c++·windows·笔记·算法
csbysj20201 小时前
JavaScript AI 编程助手
开发语言
t198751281 小时前
基于MATLAB的线性判别分析(LDA)降维算法实现方案
开发语言·算法·matlab
weixin_462446231 小时前
nodejs 下使用 Prettier 美化单个 JS 文件(完整教程)
开发语言·javascript·ecmascript
醇氧1 小时前
【Windows】从守护到终结:解析一个 Java 服务的优雅停止脚本
java·开发语言·windows