Json数据处理

Json数据处理

此处使用的JSON处理方式都为阿里下的fastjson2依赖(com.alibaba.fastjson2:fastjson2:2.0.15)下的处理方式。其他的也可以可能会有细微差距

String字符串格式的Json数据转换为JSON数据
    //转为JSONObject格式数据
    JSONObject jsonObject = JSON.parseObject(json);
    //转为JSONArray格式数据
    JSONArray objects = JSON.parseArray(json);

Json数据分为JSON对象即数据为对象用大括号{}包裹数据,即使用JSONObject接收数据。
另一个种常用为JSON数组类型数据用中括号[]包裹数据,即使用JSONArray接收数据。

提取JSONObject数据中想要的数据
  1. 如果直接提取对象数据中的某个值时:可以直接使用Object object = jsonObject.get(“subjectName”);
    此处get()方法,即提取出值,提取出的为Object类型值,之后在转换为对应需要的值;
  2. 如果提取对象中还包裹层对象数据,而我需要取的是该对象包裹的对象中的一个数据呢:如下类型JSON数据
 {
    "aId": "90100",
    "id": 246680609219420160,
    "product": {
        "appCode": "8A57DB69BAB162A",
        "appSecret": "En1RCd80",
        "authorizationEnd": 168000,
        "authorizationStart": 169000,
        "id": "26240"
        }
    }

如果我需要取product对象中的appSecret的值那该如何处理呢,不急,JSONObject对象中有一个getJSONObject()方法可以使用。
首先我们去获取product数据**JSONObject jsonObject2 =
jsonObject.getJSONObject(“product”);这样我们就获取到了product
的JSON对象,然后获取appSecret的值就在调用get()方法即可。如下:

JSONObject jsonObject2 = jsonObject.getJSONObject("product");
//此处为String类型,即get方法后为object对象直接调用toString方法转为String类型
String appSecret = jsonObject2.get("appSecret").toString;
//如果确定且知道值时什么类型也可以直接获取对应类型

如下:
在这里插入图片描述在这里插入图片描述

  1. 如果是取值对象中还包括数组集合形式的JSON数据,我们可以使用getJSONArray()方法去获取如对应的数组集合数据。
{
    "aId": "590100",
    "id": 24660160,
    "product": {
        "appCode": "1960D7DB69BAB162A",
        "appSecret": "En1R7ACd80",
        "authorizationEnd": 161000,
        "authorizationStart": 162000,
        "id": "505307339369226240",
        "resourceFields": [
            {
                "dropDetail": "一般纳税人",       
                "fieldName": "纳税人性质",       
                "fieldType": "下拉选(单选)",
                "id": 40,
            },
            {
                "dropDetail": "成都",          
                "fieldName": "归属公司",       
                "fieldType": "下拉选(单选)",
                "id": 43,
            }
        ],
    }
 }

如上数据我们要去取resourceFields里面的数据,该数据由[]包裹,所以为数组集合数据。在转为JSON对象后获取方式及如下

JSONObject jsonObject2 = jsonObject.getJSONObject("product");
//通过getJSONArray方法获取JSONObject中的数组数据
JSONArray jsonArray = jsonObject2.getJSONArray("resourceFields");
//如果要获取对象数据可以遍历此数组集合
for (int i = 0; i < jsonArray.size(); i++) {
			//获取集合下对象中的对应的字段值
            String temp = jsonArray.getJSONObject(i).get("fieldName").toString
            String temp2 = jsonArray.getJSONObject(i).get("dropDetail").toString
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值