当前位置:网站首页>牛 plus,多层嵌套动态 JSON 该如何解析总结
牛 plus,多层嵌套动态 JSON 该如何解析总结
2022-08-08 11:59:00 【华为云】
作者:知识浅谈,CSDN签约讲师,CSDN博客专家,华为云云享专家,阿里云星级博主
擅长领域:全栈工程师、爬虫、ACM算法
公众号:知识浅谈
联系方式vx:zsqtcc
牛plus,多层嵌套动态JSON该如何解析总结
先介绍咱们用到的两个工具,再一起做个案例
Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,反之亦然。它是由Google开发的一个开源库。
以下几点说明为什么应该使用这个库·标准化-Gson是一个由Google管理的标准化库。
- 高效-这是对Java标准库的可靠,快速和高效的扩展。
- 优化-Gson库经过高度优化。
- 支持泛型-它为泛型提供了广泛的支持。
- 支持复杂的内部类-它支持具有深度继承层次结构的复杂对象。
温馨提醒:这个有点用,请仔细看下去
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>
//转换为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;}
测试代码
只要明白三个函数的意思就理解了,第一个是传入的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解决了。
边栏推荐
- 安科瑞预付费水电集团物业解决方案-Susie 周
- 别再到处乱放配置文件了!试试我司使用 7 年的这套解决方案,稳的一秕
- 论文阅读《Omnidirectional DSO: Direct Sparse Odometry with Fisheye Cameras》
- 学习与尝试 --&gt; 事件风暴
- 如何在go重打印函数调用者信息Caller
- 如何上线TB级推荐模型
- Combining "xPlus" to discuss the innovation and change of software architecture
- openssl 创建证书
- 面试突击72:输入URL之后会执行什么流程?
- (原创)[C#] GDI+ 之鼠标交互:原理、示例、一步步深入、性能优化
猜你喜欢
五心红娘6月成功案列
leetcode-636:函数的独占时间
Mysql的分布式事务原理理解
微服务负载均衡器Ribbon实战
day01 -Web API介绍—DOM 介绍—获取元素—事件基础—操作元素—排他操作—自定义属性操作—节点操作—案例:动态生成表格—创建元素的三种方式(经典面试题)
Five-faced Alibaba rated P6 after taking the offer: share his interview experience
.NET Community Toolkit 8.0.0 版本发布
面试突击72:输入URL之后会执行什么流程?
Redis 定长队列的探索和实践
详解轮播图二-通过left定位来轮播图片
随机推荐
无心剑2022年七绝100首
office安装出现了“office对安装源的访问被拒绝30068-4(5)”错误
Supervisor 后台进程管理
学习与尝试 --&gt; 事件风暴
Combining "xPlus" to discuss the innovation and change of software architecture
RT-Thread记录(三、RT-Thread 线程操作函数及线程管理与FreeRTOS的比较)
案例分析 | 宜家以双钻设计模型探索线上零售新业务
结合“xPlus”探讨软件架构的创新与变革
一条SQL在MySQL中是如何执行的
odps sql被删除了,能找回来吗
易周金融分析 | 互联网系小贷平台密集增资;上半年银行理财子公司综合评价指数发布
(原创)[C#] GDI+ 之鼠标交互:原理、示例、一步步深入、性能优化
Pattern Recognition Study Notes: Chapter 6 Other Classification Methods (Continuously updated...)
MeterSphere--开源持续测试平台
MySQL----索引
The most complete JVM performance tuning in history: thread + subsystem + class loading + memory allocation + garbage collection
分分钟快速定制您的专属个性化软件应用——BizTool自动化工具简介
Geoffrey Hinton:深度学习的下一个大事件
shell之常用小工具
Mobile adaptation method of vw/vh - vw/vh instance - analog B stand mobile home page - get style tutorial video