fastjson解析复杂一丢丢的json文件(json中的key不同)

最近公司里的大佬让我写一个程序,作用概括来讲就是通过解析json文件得到数据,利用这些数据做资源转存以及将信息记录在数据库中。

当时那个项目里已经引入了fastjson的依赖,我就想顺势用它一手,但是实话说,已经很久没有手动使用这类技术去对json进行解析了,平时前后端交互都是使用@RequestBody直接搞定,当时冷静思考了一下,应该就是一个数据转为可操作的对象的过程,在网络上简单的检索了一下代码,结果当场就给我报错了。

这什么情况?自己捣鼓了一会还是没调好,按道理讲这应该没啥难度才对呀,突然,回过神才发现了不对劲的地方。

之前玩的json是这个样子的:

{
  name:"xxx",
  id:"xxx",
  xxx:{
       ... ... 
  }          
}

这次给我的json文件是这个样子的:

{
    "乱七八糟的名字": {
    },
    "依旧乱七八糟的名字": {
    },
    ... ...
}

当时是从逻辑推理的角度来思考这个问题的,以上两个json我们称为j0和j1,你将j0交给fastjson,“兄弟,这个文件帮忙解析一下,这里面有name,id等等属性,我用类封装好了,你给我解析成这个类的对象。”

fastjson:“小事情,毫无压力啦”

而你将j1交给fastjson时,“兄弟,你看这个json能不能帮忙解析成我自定义类的对象?”

fastjson:“... ...”

那么这种情况下,我们该怎么使用fastjson进行解析呢?首先仔细观察一下你手头的json文件,我当时拿到的json文件第一层属性名字是不固定的,内层的名字是固定的,那么我可以对内层进行封装然后使用JSONObject json = JSON.parseObject(... ...);对整个json进行解析,然后调用keySet()方法取出所有千奇百怪的key,然后通过key取value,再对value进行解析。

代码就不放上来了,写到这里忽然很感慨,如果当初好好学习英语现在说不定直接去官网看文档了,以上思路算是灵机一动加上一点点经验,半查资料半猜测出来的,供大家参考,因为之前去网上搜索这个问题的时候,发现不太好找,所以就写出来分享一下。

 

posted @   无心大魔王  阅读(865)  评论(0编辑  收藏  举报
编辑推荐:
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 数据库服务器 SQL Server 版本升级公告
· 程序员常用高效实用工具推荐,办公效率提升利器!
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)
点击右上角即可分享
微信分享提示