/**
*
*/
package json; import java.util.Date;
import java.util.Objects; import com.autoyol.platformfee.util.tools.GsonUtils;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken; public class GsonTest { public static TestResultVo handleTransTn(String json) {
TestResultVo testResultVo = null;
if (org.apache.commons.lang.StringUtils.isNotEmpty(json)) {
Gson gson = new GsonBuilder().registerTypeAdapter(Date.class, new DateAdapter()).create(); ResponseObject<TestResultVo> result = gson
.fromJson(
json,
new TypeToken<ResponseObject<TestResultVo>>() {
}.getType());
if (Objects.nonNull(result) && Objects.equals(ErrorCode.SUCCESS.getCode(),result.getResCode())) {
testResultVo = result.getData();
System.out.println("handleTransTn result=[{}]"+GsonUtils.toJson(testResultVo));
}
}
return testResultVo;
} public static void main(String[] args) {
String json = "{\"resCode\":\"111\",\"resMsg\":\"success\",\"data\":{\"package\":\"prepay_id=wx14163621135514d6fe36aa7854ce740000\"}}";
TestResultVo vo = handleTransTn(json);
System.out.println("vo="+GsonUtils.toJson(vo)); }
}

/**
*
*/
package json; import com.google.gson.annotations.SerializedName; public class TestResultVo { String respMsg;
// 响应编码 成功 00
String respCode; @SerializedName("package")
String Package; //package是关键字 转换的时候需要处理首字母小写。 public String getRespMsg() {
return respMsg;
} public void setRespMsg(String respMsg) {
this.respMsg = respMsg;
} public String getRespCode() {
return respCode;
} public void setRespCode(String respCode) {
this.respCode = respCode;
} public String getPackage() {
return Package;
} public void setPackage(String package1) {
Package = package1;
} }
package json;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonParseException; import java.lang.reflect.Type;
import java.util.Date; public class DateAdapter implements JsonDeserializer <Date> {
@Override
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
Date date = new Date();
date.setTime(json.getAsLong());
return date;
}
}
package json; 

public enum ErrorCode {
SUCCESS("111","OK"); private String code;
private String text; private ErrorCode(String code, String text) {
this.code = code;
this.text = text;
} public String getCode() {
return code;
} public void setCode(String code) {
this.code = code;
} public String getText() {
return text;
} public void setText(String text) {
this.text = text;
} }
/**
*
*/
package json; import java.io.Serializable; public class ResponseObject<T> implements Serializable{ /**
*
*/
private static final long serialVersionUID = 1L;
private T data;
protected String resCode;
protected String resMsg; public String getResCode() {
return resCode;
}
public void setResCode(String resCode) {
this.resCode = resCode;
}
public String getResMsg() {
return resMsg;
}
public void setResMsg(String resMsg) {
this.resMsg = resMsg;
} public T getData() {
return data;
} public void setData(T data) {
this.data = data;
} }

gson转换对象对字段别名处理@SerializedName注解demo的更多相关文章

  1. gson转换对象为json字符串时对特殊字符编码的问题

    使用google的gson进行object和json的转换,如下: public static String object2json(Object obj) { Gson gson = new Gso ...

  2. Gson序列化对象如何忽略字段

    Gson序列化对象如何忽略字段 Gson版本 2.8.2 梗概 用注解@Expose(serialize = false, deserialize = false)在类的成员上以告诉Gson 跳过本字 ...

  3. Gson转换复杂对象报错【类型强转错误】

    一.问题: 项目里遇到一个需求,规则文件下载后,导入本地解析. 采用的方案是:获取复杂对象,使用谷歌Gson转换为字串保存为文件下载,客户端读取文件,解析字串,反解对象 遇到的问题:传输的对象是一个嵌 ...

  4. 使用Google的Gson实现对象和json字符串之间的转换

    使用Google的Gson实现对象和json字符串之间的转换 需要gson.jar 1.JsonUtil.java package com.snail.json; import java.lang.r ...

  5. Gson序列化对象时排除字段

    import com.google.gson.ExclusionStrategy; import com.google.gson.FieldAttributes; /** *Gson序列化对象排除属性 ...

  6. Gson把对象转成json格式的字符串

    近期在做一个java web service项目,须要用到jason,本人对java不是特别精通,于是開始搜索一些java平台的json类库. 发现了google的gson.由于之前对于protoco ...

  7. 【.Net底层剖析】2.stfld指令-给对象的字段赋值

    .Net底层剖析目录章节 1.[深入浅出.Net IL]1.一个For循环引发的IL 2.[.Net底层剖析]2.stfld指令-给对象的字段赋值 3.[.Net底层剖析]3.用IL来理解属性 引言: ...

  8. hibernate结合使用gson转换json中一点看法

    转发请注明出处:http://www.cnblogs.com/shizhongtao/p/3680216.html 在前后台的交互中,经常需要把bean对象与xml或者json,这里就把自己以前遇到的 ...

  9. JavaScript如何转换数据库DateTime字段类型?

    Javascript一种直译式脚本语言,是一种动态类型.弱类型.基于原型的语言,内置支持类型.它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在html(标 ...

  10. [转帖]Oracle数据库lob大对象数据类型字段总结,值得收藏

    Oracle数据库lob大对象数据类型字段总结,值得收藏 原创 波波说运维 2019-07-11 00:02:00 https://www.toutiao.com/i67108943269703357 ...

随机推荐

  1. AHPA:开启 Kubernetes 弹性预测之门

    ​简介:阿里巴巴云原生团队和阿里达摩院决策智能时序团队合作开发 AHPA 弹性预测产品,该产品主要出发点是基于检测到的周期做"定时规划",通过规划实现提前扩容的目的,在保证业务稳定 ...

  2. 揭秘远程证明架构EAA:机密容器安全部署的最后一环 | 龙蜥技术

    ​简介:如果需要在云上 HW-TEE 环境里启动一个加密容器,如何在启动过程中获取容器的解密密钥? ​ 文 / 周亮, 云原生机密计算 SIG 核心成员. 在云原生场景下,基于HW-TEE(如Inte ...

  3. [GPT] 机器学习框架平台或框架的学习成本和友好程度排名?

      按照学习成本从高到低的顺序,大概如下: TensorFlow:虽然TensorFlow功能强大,但学习曲线比较陡峭,需要掌握一些深度学习的基本概念和数学知识. PyTorch:PyTorch相对而 ...

  4. dotnet SemanticKernel 入门 将技能导入框架

    在上一篇博客中和大家简单介绍了 SemanticKernel 里的技能概念,接下来咱准备将 技能 导入到 SemanticKernel 框架里面,进行一个管道式调用 本文属于 SemanticKern ...

  5. 高性能消息中间件-Nats使用

    一.Nats简介 官网:https://nats.io/ 官网下载:https://nats.io/download/ github:https://github.com/nats-io/nats-s ...

  6. SAP HANA计算视图

    Text. Text. Text. Text. Text. Text. Text. Text. Text. Text. 越来越多的SAP用户正在将SAP HANA实施为现有SAP BW的基础和数据库. ...

  7. fastposter v2.8.0 发布 电商海报编辑器

    fastposter v2.8.0 发布 电商海报编辑器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报,二维 ...

  8. 扩展实现Unity协程的完整栈跟踪

    现如今Unity中的协程(Coroutine)方案已显得老旧,Unitask等异步方案可以做到异常捕获等yield关键字处理起来很麻烦的问题, 并且Unity官方也在开发一套异步方案,但对于临时加入到 ...

  9. .NET使用P/Invoke来实现注册表的增、删、改、查功能

    注册表可以用来进行存储一些程序的信息,例如用户的权限.或者某些值等,可以根据个人需要进行存储和删减. 当前注册表主目录: 引用包 Wesky.Net.OpenTools 1.0.5或者以上版本 操作演 ...

  10. vulnhub靶场-->MATRIX-BREAKOUT: 2 MORPHEUS

    靶机下载地址 MATRIX-BREAKOUT: 2 MORPHEUS << 点我下载 开始打靶 IP发现 nmap扫描网段发现靶机ip:192.168.111.139 端口发现 对靶机进行 ...