Gson和fastJson 解析巢狀泛型的json資料
阿新 • • 發佈:2018-12-26
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;
}
}