1. 程式人生 > >Gson和fastJson 解析巢狀泛型的json資料

Gson和fastJson 解析巢狀泛型的json資料

Test

        /*
         * {
         "code": 1,
         "datas": [{
         "address": "深圳",
         "age": 18,
         "email": "[email protected]",
         "nickName": "小明",
         "phoneNumber": "11111111111",
         "sex": "男"
         }, {
         "address": "廣州",
         "age": 21,
         "email": "
[email protected]
", "nickName": "小紅", "phoneNumber": "22222222222", "sex": "女" }, { "address": "北京", "age": 19, "email": "[email protected]", "nickName": "小黑", "phoneNumber": "33333333333", "sex": "男" }, { "address": "杭州", "age": 18, "email": "
[email protected]
", "nickName": "小強", "phoneNumber": "44444444444", "sex": "男" }], "msg": "成功" } */ System.out.print(str); /* fastJson 方式 */ ResponseResult<List<UserInfo>> responseResult1 = JSON.parseObject(str, new TypeReference<ResponseResult<List<UserInfo>>>() {}); System.out.print(responseResult1); /* Gson方式 */ Gson gson = new Gson(); ResponseResult<List<UserInfo>> responseResult2 = gson.fromJson(str , new TypeToken<ResponseResult<List<UserInfo>>>(){}.getType()); System.out.print(responseResult2);

包裝泛型實體類

public class ResponseResult<T> {
    /**
     * 伺服器返回標識
     */
    private int code;

    /**
     * 描述
     */
    private String msg;

    /**
     * 請求成功之後的資料
     */
    private T datas;

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public T getDatas() {
        return datas;
    }

    public void setDatas(T datas) {
        this.datas = datas;
    }
}

實體類

public class UserInfo {

    private String nickName;

    private Integer age;

    private String sex;

    private String address;

    private String email;

    private String phoneNumber;

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }
}