Gson反序列化泛型实例
2024-08-27 09:52:16
1
package com.ppmoney.g2.mapper; import com.google.common.reflect.TypeToken;
import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException; import java.lang.reflect.Type; public class JsonHelper { public static void main(String[] args) {
String respStr = "{\"status\":0,\"msg\":\"\",\"data\":{\"cardNo\":\"23543456345\"}}";
BaseResponse<CardInfo> cardInfo = parseResponse(respStr);
System.out.println(cardInfo.data);
respStr = "{\"status\":0,\"msg\":\"\",\"data\":{\"id\":\"23543456345\",\"name\":\"张三\"}}";
BaseResponse<UserInfo> userInfo = parseResponse(respStr);
System.out.println(userInfo.data);
} private static <T> BaseResponse<T> parseResponse(String responseData) throws JsonSyntaxException { Gson gson = new Gson();
Type jsonType = new TypeToken<BaseResponse<T>>() {
}.getType();
BaseResponse<T> result = gson.fromJson(responseData, jsonType); return result;
} class BaseResponse<T> { private int status; public int getStatus() {
return status;
} public void setStatus(int status) {
this.status = status;
} public String getMsg() {
return msg;
} public void setMsg(String msg) {
this.msg = msg;
} public T getData() {
return data;
} public void setData(T data) {
this.data = data;
} private String msg; private T data; } class UserInfo {
private String name; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} @Override
public String toString() {
return "UserInfo{" +
"name='" + name + '\'' +
", Id='" + Id + '\'' +
'}';
} public String getId() {
return Id;
} public void setId(String id) {
Id = id;
} private String Id;
} class CardInfo {
public String getCardNo() {
return cardNo;
} public void setCardNo(String cardNo) {
this.cardNo = cardNo;
} @Override
public String toString() {
return "CardInfo{" +
"cardNo='" + cardNo + '\'' +
'}';
} private String cardNo;
}
}
最新文章
- mssql 2008 游标 临时表 作业批处理失败问题
- Java实现本地 fileCopy
- HDU1899 Sum the K-th&#39;s(树状数组)
- td也可以溢出隐藏显示
- 用telnet和php的curl库测试http
- CSS六大选择器(注释css表里不能加注释!!)
- 乱译文档--开始使用Musca
- web前端如何让网页布局稳定性和标准性?
- Alpha冲刺No.10
- Git常用命令解说
- sonar 匿名内部类写法不推荐
- 金蝶K/3 固定置产相关SQL语句
- Docker docker-compose安装
- PB的一些记录
- 【Topcoder 10384】KingdomMap
- Spring之配置文件bean作用域的详细介绍
- Django中的Templates
- The type android.support.v4.view.ScrollingView cannot be resolved. It is indirectly referenced from
- python学习 day19 configparser模块 os模块 subprocess模块
- 【Cesium】天空盒子