zoukankan      html  css  js  c++  java
  • Fastjson处理复杂层级关系的json对象

    处理复杂层级关系的json对象

    我们一般的项目现在都是前后端分离,从前端传过来的都是序列化好的json数据,但是我们后台如何获取呢,那就不获取了呗~,上代?

    用到了阿里的Fastjson来处理

    导入pom文件

     <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>fastjson</artifactId>
          <version>1.2.49</version>
     </dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    直接开用,如何转化json的字符串呢?

     JSONObject jsonObject = JSON.parseObject(result)
    
    • 1
    • 其中result就是json的字符串,转化为jsonObject
      在这里插入图片描述
      转化成功就如上图所示,变成了一个jsonObject的对象

    层级复杂怎么办,多半是装的,打一顿就好了

    在这里插入图片描述
    看到这种让人头疼的层级关系特别复杂的json怎么办?干就完事了

    先看代码

    JSONArray jsonArray=jsonObject.getJSONObject("data").getJSONArray("fileList").getJSONObject(0).getJSONArray("labels");
    
    • 1

    我这里最终想获取一个labels的数组,我怎么把它提取出来呢,看上面代码

    • 由于我要获取一个数组,我用JSONArray类型的
    • jsonObject是之前已经转化好的json字符串
    • 它的第一层名是data并不是数组,那我们先加上一句getJSONObject(“data”)
    • 第二层名是fileList提示我们是一个数组,里面包含了一个名为0的数组元素,所以我们加上getJSONArray(“fileList”)
    • 第三层名为0,不是数组,但是是上一层的数组元素,加上getJSONObject(0) 表示获取第一个元素
    • 第四层我们要进入labels里面,是个数组加上getJSONArray(“labels”)
    • 最终我们完成了取出元素

    取出来就是这个样子的
    在这里插入图片描述

    由于都是数字,我们将它转化为list

     List list = new ArrayList<>();
            for(Object jstr:jsonArray){
                list.add(jstr);
            }
    
    • 1
    • 2
    • 3
    • 4

    输出它的第一个list的值

      System.out.println(list.get(0));
    
    • 1

    得到最终结果
    在这里插入图片描述

  • 相关阅读:
    一条短信控制你的手机! Android平台的SQL注入漏洞浅析
    技术分享 Android动态调试程序
    [Java] java byte数组与int,long,short,byte转换
    技术分享:. 外部动态加载DEX文件风险浅谈
    TestLink的使用
    selenium_页面设计模式PageFactory与动态Xpath
    selenium_maven高级实战
    selenium_Jenkins高级实战篇
    将本地Git仓库中的内容上传至GitHub
    将本地下载的jar导入到本地的私有仓库中
  • 原文地址:https://www.cnblogs.com/xiami2046/p/13896194.html
Copyright © 2011-2022 走看看