• 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进行解析。

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

  • 相关阅读:
    leetcode 第二题Add Two Numbers java
    二叉树中的那些常见的面试题(转)
    运行的指令
    Python常见经典 python中if __name__ == '__main__': 的解析
    软件测试基本概念
    JAVA Android王牌教程
    17个新手常见Python运行时错误
    QTP
    链表有关的常见面试题
    Robot Framework and Ride
  • 原文地址:https://www.cnblogs.com/wxdmw/p/14614717.html
Copyright © 2020-2023  润新知