Gson反序列化泛型实例
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;
}
}
Gson反序列化泛型实例的更多相关文章
- 完全理解Gson(3):Gson反序列化
完全理解Gson(2):Gson序列化 完全理解Gson(1):简单入门 本文延续前一篇文章,继续介绍简单基本的Gson用法.这篇文章我们将介绍如何将复杂的JSON对象解析为Java对象,其中Java ...
- 使用GSON和泛型解析约定格式的JSON串(转)
时间紧张,先记一笔,后续优化与完善. 解决的问题: 使用GSON和泛型解析约定格式的JSON串. 背景介绍: 1.使用GSON来进行JSON串与java代码的互相转换. 2.JSON的格式如下三种: ...
- Web Service 通过BinaryFormatter序列化和反序列化泛型List
1.序列化和反序列化的扩展方法如下: using System; using System.Collections.Generic; using System.Linq; using System.T ...
- JSON序列化和反序列化的实例
之前有项目中使用到了Json的序列化和反序列化,现在将使用的实例记录下来以备查阅.如有不妥,请指教. 代码的最终目的是得到一个符合 resultClass<List<rtnGetFindM ...
- Gson反序列化Map,整型自动转换为浮点型
一 坑 场景:将Map<String,Object>结果序列化后放入redis缓存,发现反序列化后Integer类型自动转换成了Double类型 二 测试重现 @Test public v ...
- Gson解析泛型
1.简单对象我们传入对象Class来将JSON字符串转为对象 private static <T> T fromJson(String result, Class<T> cla ...
- java android使用Gson解析泛型json数据
那就直接开始吧. 在我们获取服务器返回的json数据有时候会出现这种情况,比如: {"body":{"attrName":"feed",&q ...
- C#泛型实例详解
本文以实例形式讲述了C#泛型的用法,有助于读者深入理解C#泛型的原理,具体分析如下: 首先需要明白什么时候使用泛型: 当针对不同的数据类型,采用相似的逻辑算法,为了避免重复,可以考虑使用泛型. 一.针 ...
- gson 带泛型的转换
json转对象 public static <T> T json2Obj(String json, Class<T> cls) { Gson gson = new Gson() ...
随机推荐
- numpy ndarray 返回 index 问题
经常遇到需要返回满足条件的index. python中没有which函数,但有列表推导式, 可以实现类似功能 y= np.array([3,2,5,20]) yOut[131]: array([ 3, ...
- 手打的table
突然觉得,如果我不上传源码和写篇博客,对不起花在这个破网页2个小时的时间,完全手打,浏览器调效果. 源码如下: a.html: <!DOCTYPE html PUBLIC "-//W3 ...
- mybatis 获得一个map的返回集合
在使用mybatis 查询结果集,有时会有需求返回一个map比如表 id username 1 name1 2 name2 3 name3 希望的查询结果是一个map 并且以id为key 表为实体 ...
- 黑盒测试实践--Day6 11.30
黑盒测试实践--Day6 11.30 今天完成任务情况: 应用设计的场景用例,完成测试用例的编写 完成测试用例在自动化测试工具QTP上的测试 分析测试结果得到缺陷报告 小靳 软件测试 今天主要钻研了q ...
- 2.3.2 volatile 说明
volatile这个关键字可能很多朋友都听说过,或许也都用过.在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果.在Java 5之后,volatile关键字才得以 ...
- Schwartz kernel theorem施瓦兹核定理
In mathematics, the Schwartz kernel theorem is a foundational result in the theory of generalized fu ...
- 编写高质量代码改善C#程序的157个建议——建议15: 使用dynamic来简化反射实现
建议15: 使用dynamic来简化反射实现 dynamic是Framework 4.0的新特性.dynamic的出现让C#具有了弱语言类型的特性.编译器在编译的时候不再对类型进行检查,编译器默认dy ...
- .net core MVC 通过 Filters 过滤器拦截请求及响应内容
前提: 需要nuget Microsoft.Extensions.Logging.Log4Net.AspNetCore 2.2.6: Swashbuckle.AspNetCore 我暂时用的是 ...
- angular启动过程
第一步: .angular-cli.json 第二步: 第三步: 第四步: 第五步:
- Xamarin 笔记
1. 报类 $(_DeviceSdkVersion) >= 21 异常,提示部署失败 解决办法:升级 xamarin for visual studio 2. 新建项目时,报“程序包安装错误”: ...