JSON对象相互转换

本文涉及的产品
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: JSON对象相互转换

 目录

String --> JsonNode对象

JsonNode对象 --> String

Map --> JsonNode对象,object>

JsonNode数组 --> List>集合

List> --> JsonNode

获取JsonNode中某个key的值

获取JsonNode字段下的某个数组


String --> JsonNode对象

// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();
// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);

image.gif

JsonNode对象 --> String

// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();
// 解析整个JSON字符串为一个JsonNode对象
JsonNode jsonResult= objectMapper.readTree(result);
// JsonNode转换成String
result = objectMapper.writeValueAsString(jsonResult);

image.gif

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

// 创建一个 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);

image.gif

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

// 创建一个 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>>>() {});

image.gif

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

// 创建一个 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));
}

image.gif

获取JsonNode中某个key的值

// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();
// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);
// 获取errcode
JsonNode errcode = rootNode.get("errcode");

image.gif

获取JsonNode字段下的某个数组

// 创建一个 ObjectMapper 对象实例,用于在 Java 对象和 JSON 数据之间进行序列化和反序列化
ObjectMapper objectMapper = new ObjectMapper();
// 解析整个JSON字符串为一个JsonNode对象
JsonNode rootNode = objectMapper.readTree(result);
// 获取data字段下的data数组
JsonNode dataArrayNode = rootNode.get("data").get("data");

image.gif


相关文章
|
1月前
|
JSON 应用服务中间件 nginx
钉钉获取用户token返回的body为空json对象,可能有以下几种情况
钉钉获取用户token返回的body为空json对象,可能有以下几种情况【1月更文挑战第5天】【1月更文挑战第25篇】
47 5
|
1月前
|
Web App开发 JSON JavaScript
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
SAP UI5 应用程序小技巧 - 一键将 JSON 对象导出成本地 json 文件
|
1月前
|
存储 JSON 安全
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
99 0
|
1月前
|
JSON NoSQL MongoDB
实时计算 Flink版产品使用合集之要将收集到的 MongoDB 数据映射成 JSON 对象而非按字段分割,该怎么操作
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
4天前
|
Web App开发 JSON JavaScript
JavaScript对象常用操作JSON总结
JavaScript对象常用操作JSON总结
18 8
|
4天前
|
JSON Java 数据格式
Java中创建Json对象的方法和详细代码
Java中创建Json对象的方法和详细代码
20 1
|
16天前
|
存储 JSON JavaScript
JavaScript基础-对象与JSON
【6月更文挑战第11天】本文介绍了JavaScript对象的创建(字面量、构造函数、Class)与操作,包括属性访问和描述符。同时讲解了JSON的性质及其与JS对象的关系,以及序列化和解析过程。文章还列举了三个常见易错点(属性访问错误、JSON格式错误、循环引用)并提供了避免策略。通过代码示例展示如何操作对象和处理JSON,强调实践对于掌握这些概念的重要性。
|
1天前
|
XML JSON Java
老程序员分享:JAVA对象转换JSON
老程序员分享:JAVA对象转换JSON
|
1月前
|
JSON JavaScript 前端开发
js将json字符串还原为json对象
【5月更文挑战第14天】js将json字符串还原为json对象
49 1
|
24天前
|
JSON JavaScript 数据格式
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
1.js动态的往json数据添加新属性和值 2.JSON 和 JS 对象互转 3.对象转化为数组
19 0