JSON数据的解析(JSON转换实体类)

背景:对接第三方公司数据,以请求响应方式交互,得到的数据以JSON格式返回,且一般情况下对接的数据最外层结构是固定的,只有数据可能会是JSON对象或者是JSON数组

pom.xml依赖,主要就是JSON的包以及lombok的包 

     <!--fastjson   <fastjson.version>1.2.72</fastjson.version>  -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

举例说明

对接用户数据返回数据样例    新建用户接收实体类,按照接收数据的提取属性定义 

{

    "outUserResult": {

        "data": [

            {

                "gender": 1,

                "id": "2021061711322755017a1806f72b5275",

                "loginName": "1dcs11",

                "name": "一队测试11",
            },

           {

                "gender": 1,

                "id": "2021061711322755017a1806f72b5275",

                "loginName": "1dcs11",

                "name": "一队测试11",
            }
        ],

        "error_code": "0"
    }

}

 JSON数据对应实体类SJUserVO ,用实体类转换JSON数据靠谱一下,就不用每次get值都手敲一边对应的“key”,纯字符串容易出错

import lombok.Data;

@Data
public class SJUserVO {

    /**
     * 性别	1男 2女
     */
    private  Integer gender;

    /**
     *用户id,唯一
     */
    private  String id;

    /**
     *用户登录名
     */
    private  String        loginName;
    /**
     *用户名称
     */
    private  String  name;


}

 解析数据代码,

/**
str 就是对应上面的接手过来的数据 {"outOrgResult":{"data":[{user1},{user2}]}}

*/
String str = "";

//获取需要的数据

JSONArray ja = JSONObject.parseObject(str).getJSONObject("outUserResult").getJSONArray("data");


//JSONArray 需要遍历 转换实体类 ,如果是JSON可以直接转换实体类 

 if(ja !=null && ja.size()>0){

        System.out.println("用户总数》》》》"+ja.size());

            for(Object o:ja){

                SJUserVO sjUserVO = JSONObject.parseObject(o.toString(), SJUserVO.class);

                System.out.println(sjUserVO);
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值