牛 plus,多层嵌套动态 JSON 该如何解析总结

简介: 牛 plus,多层嵌套动态 JSON 该如何解析总结

🍁 作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云星级博主

📌 擅长领域:全栈工程师、爬虫、ACM算法

💒 公众号:知识浅谈

🔥 联系方式vx:zsqtcc

🤞牛plus,多层嵌套动态JSON该如何解析总结🤞

先介绍咱们用到的两个工具,再一起做个案例⛳⛳⛳

🎈GSON工具

Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,反之亦然。它是由Google开发的一个开源库。

以下几点说明为什么应该使用这个库·标准化-Gson是一个由Google管理的标准化库。

  • 高效-这是对Java标准库的可靠,快速和高效的扩展。
  • 优化-Gson库经过高度优化。
  • 支持泛型-它为泛型提供了广泛的支持。
  • 支持复杂的内部类-它支持具有深度继承层次结构的复杂对象。

🎈OGNL表达式

温馨提醒:这个有点用,请仔细看下去

OGNL表达式是Object–Graph Navigation Language的缩写,是一种功能强大的表达式语言,通过简单一致的表达式语法,可以存取对象的任意属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转换。

🎈实战

🍮引入依赖

<dependency>
    <groupId>ognl</groupId>
    <artifactId>ognl</artifactId>
    <version>3.1.1</version>
</dependency>
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.9.0</version>
</dependency>

🍮使用GSON转换为Map

//转换为map对象,这种方法处理起来比较麻烦
public Map<String,Object> tranferMap(String json) {
    Gson gson = new Gson();
    Map<String,Object> map = gson.fromJson(json, new TypeToken<Map<String,Object>>(){}.getType());
    return map;
}

📐测试代码

🍮使用ONGL获取指定的json中的值

只要明白三个函数的意思就理解了,第一个是传入的json字符串,第二个是传入的获取指定的json字符串中的路径对应的值,第三个是获取指定的值的返回类型,稍等举个例子就明白了。

public <T> T getvalue(String json,String path,Class<T> clazz) throws OgnlException {
    Map<String, Object> map = tranferMap(json);
    OgnlContext context = new OgnlContext();
    context.setRoot(map);
    T value = (T) Ognl.getValue(path,context,context.getRoot());
    return  value;
}

📐测试代码

🍚总结

使用GSON可以解析成Map对象,但是如果嵌套层数过多,就会造成获取内部某个值的时候比较麻烦,遇见这种情况就可以使用ongl解决了。

相关文章
|
29天前
|
JSON JavaScript 前端开发
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
C++ 智能指针与 JSON 处理:高级编程技巧与常见问题解析
264 0
|
11天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
27 0
|
29天前
|
JSON JavaScript 数据格式
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
【深入探究C++ JSON库】解析JSON元素的层级管理与遍历手段
86 2
|
29天前
|
XML JSON API
深入解析C++ JSON库:nlohmann::json:: parse的内部机制与应用
深入解析C++ JSON库:nlohmann::json:: parse的内部机制与应用
47 0
|
3月前
|
JSON PHP 数据格式
|
3月前
|
JSON JavaScript 前端开发
JavaScript 如何对 JSON 数据进行冒泡排序?
JavaScript 如何对 JSON 数据进行冒泡排序?
51 0
|
1月前
|
存储 JSON Apache
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
在最新发布的阿里云数据库 SelectDB 的内核 Apache Doris 2.1 新版本中,我们引入了全新的数据类型 Variant,对半结构化数据分析能力进行了全面增强。无需提前在表结构中定义具体的列,彻底改变了 Doris 过去基于 String、JSONB 等行存类型的存储和查询方式。
揭秘 Variant 数据类型:灵活应对半结构化数据,JSON查询提速超 8 倍,存储空间节省 65%
|
2月前
|
XML 机器学习/深度学习 JSON
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
29 0
在火狐浏览器调ajax获取json数据时,控制台提示“XML 解析错误:格式不佳”。
|
15天前
|
存储 JSON 数据挖掘
python逐行读取txt文本中的json数据,并进行处理
Python代码示例演示了如何读取txt文件中的JSON数据并处理。首先,逐行打开文件,然后使用`json.loads()`解析每一行。接着,处理JSON数据,如打印特定字段`name`。异常处理包括捕获`JSONDecodeError`和`KeyError`,确保数据有效性和字段完整性。将`data.txt`替换为实际文件路径运行示例。
12 2
|
1月前
|
JSON 数据格式
糊涂工具类(hutool)post请求设置body参数为json数据
糊涂工具类(hutool)post请求设置body参数为json数据
31 1

推荐镜像

更多