将Json解析成Java对象

使用工具将Json字符串转换成对象

json转对象的地址:http://www.bejson.com/json2javapojo/new/

Maven依赖

<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.58</version>
</dependency>
 <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.8</version>
        </dependency>

要解析的Json字符串

              {\n" +
                "  \"data\": {\n" +
                "    \"pageInfo\": {\n" +
                "      \"isLastPage\": false,\n" +
                "      \"pageIndex\": 1,\n" +
                "      \"pageSize\": 2,\n" +
                "      \"total\": 339,\n" +
                "      \"pageTotal\": 170,\n" +
                "      \"lastPage\": false\n" +
                "    },\n" +
                "    \"result\": [\n" +
                "      {\n" +
                "        \"batchId\": 21,\n" +
                "        \"tag\": \"2019女装潮流前线\",\n" +
                "        \"catLeafName\": null,\n" +
                "        \"catName\": null,\n" +
                "        \"freeShipment\": null,\n" +
                "        \"hGoodRate\": null,\n" +
                "        \"hPayRate30\": null,\n" +
                "        \"iRfdRate\": null,\n" +
                "        \"isPrepay\": null,\n" +
                "        \"itemUrl\": \"https://detail.tmall.com/item.htm?id=569318273772\",\n" +
                "        \"materialLibType\": null,\n" +
                "        \"nick\": \"拉夏贝尔官方旗舰\",\n" +
                "        \"itemId\": null,\n" +
                "        \"imageUrl\": null,\n" +
                "        \"provcity\": \"浙江 杭州\",\n" +
                "        \"ratesum\": null,\n" +
                "        \"reservePrice\": \"469\",\n" +
                "        \"sellerId\": 2146742267,\n" +
                "        \"shopDsr\": null,\n" +
                "        \"smallImages\": null,\n" +
                "        \"title\": \"冷淡风裙子女夏季2019新款韩版修身显瘦收腰a字裙条纹短袖连衣裙\",\n" +
                "        \"userType\": 1,\n" +
                "        \"volume\": 18,\n" +
                "        \"zkFinalPrice\": \"299\",\n" +
                "        \"maxCommissionRate\": \"3.25\",\n" +
                "        \"couponStartTime\": \"2019-05-29\",\n" +
                "        \"couponEndTime\": \"2019-06-18\",\n" +
                "        \"couponInfo\": \"满100元减20元\",\n" +
                "        \"irfdRate\": null,\n" +
                "        \"hgoodRate\": null,\n" +
                "        \"hpayRate30\": null\n" +
                "      },\n" +
                "      {\n" +
                "        \"batchId\": 21,\n" +
                "        \"tag\": \"2019女装潮流前线\",\n" +
                "        \"catLeafName\": null,\n" +
                "        \"catName\": null,\n" +
                "        \"freeShipment\": null,\n" +
                "        \"hGoodRate\": null,\n" +
                "        \"hPayRate30\": null,\n" +
                "        \"iRfdRate\": null,\n" +
                "        \"isPrepay\": null,\n" +
                "        \"itemUrl\": \"https://detail.tmall.com/item.htm?id=586964942389\",\n" +
                "        \"materialLibType\": null,\n" +
                "        \"nick\": \"拉夏贝尔官方旗舰\",\n" +
                "        \"itemId\": null,\n" +
                "        \"imageUrl\": null,\n" +
                "        \"provcity\": \"浙江 杭州\",\n" +
                "        \"ratesum\": null,\n" +
                "        \"reservePrice\": \"369\",\n" +
                "        \"sellerId\": 2146742267,\n" +
                "        \"shopDsr\": null,\n" +
                "        \"smallImages\": null,\n" +
                "        \"title\": \"千鸟格短裙包臀A字裙2019夏季新款女装ins风高腰一片式绑带半身裙\",\n" +
                "        \"userType\": 1,\n" +
                "        \"volume\": 18,\n" +
                "        \"zkFinalPrice\": \"169\",\n" +
                "        \"maxCommissionRate\": \"3.25\",\n" +
                "        \"couponStartTime\": \"2019-05-29\",\n" +
                "        \"couponEndTime\": \"2019-06-18\",\n" +
                "        \"couponInfo\": \"满100元减20元\",\n" +
                "        \"irfdRate\": null,\n" +
                "        \"hgoodRate\": null,\n" +
                "        \"hpayRate30\": null\n" +
                "      }\n" +
                "    ]\n" +
                "  },\n" +
                "  \"status\": 1000,\n" +
                "  \"message\": \"操作成功!\",\n" +
                "  \"serverTime\": 1559629784242\n" +
                "}";

解析成对象和list

    @Test
    public void test(){
        // 解析
        JSONObject jsonObject = JSON.parseObject(json);
        String resultsJson = jsonObject.getString("data");
        JSONObject resultJson = JSON.parseObject(resultsJson);

        /**
         * TODO 以下是使用的Maven依赖为1.2.8
         * TODO toJavaList方法没有啦
         * 解析成list
         */
        String resultArray = resultJson.getString("result");
        List<Result> results = JSONObject.parseArray(resultArray, Result.class);
        /**
         * TODO 以下是使用的Maven依赖为1.2.58
         */
//        List<Result> weatherData = resultArray.toJavaList(Result.class);
//        System.out.println(weatherData);
        // 解析分页数据【解析成对象】
        JSONObject pageInfo = (JSONObject) resultJson.get("pageInfo");
        PageInfo user = JSON.toJavaObject(pageInfo,PageInfo.class);

        System.out.println(user);
        System.out.println(results);
    }

解析json对应的对象

Result对象

package com.test.demo.bo;

import lombok.Data;

/**
 * @date :2019-06-04 15:14
 * @description:3333
 */
@Data
public class Result {

        private int batchId;
        private String tag;
        private String catLeafName;
        private String catName;
        private String freeShipment;
        private String hGoodRate;
        private String hPayRate30;
        private String iRfdRate;
        private String isPrepay;
        private String itemUrl;
        private String materialLibType;
        private String nick;
        private String itemId;
        private String imageUrl;
        private String provcity;
        private String ratesum;
        private String reservePrice;
        private long sellerId;
        private String shopDsr;
        private String smallImages;
        private String title;
        private int userType;
        private int volume;
        private String zkFinalPrice;
        private String maxCommissionRate;
        private String couponStartTime;
        private String couponEndTime;
        private String couponInfo;
        private String hgoodRate;
        private String hpayRate30;
        private String irfdRate;
}

PageInfo对象

package com.test.demo.bo;

import lombok.Data;

/**
 * @date :2019-06-04 15:13
 * @description:222
 */
@Data
public class PageInfo {
    private boolean isLastPage;
    private int pageIndex;
    private int pageSize;
    private int total;
    private int pageTotal;
    private boolean lastPage;
}

猜你喜欢

转载自blog.csdn.net/wildwolf_001/article/details/90898855
今日推荐