/**
*
*/
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. Serverless Devs 的官网是如何通过 Serverless Devs 部署的

    简介: 只有自己吃自己的狗粮,自己做的东西才不"".Serverless Devs 自发展之处到现在,已经经历了几个月的时间,在这几个月,Serverless Devs 的成长是迅 ...

  2. 云原生 DevOps,模型化应用交付能力很重要!

    ​简介: DevOps 文化及其支撑其落地实践的自动化工具与平台能力在云原生架构渐为普及的背后,发挥了关键的价值. 撰稿:溪洋 云原生正在成为企业业务创新和解决规模化挑战的加速器. 云原生带来的变革绝 ...

  3. VisualStudio 如何快速添加一个 Git Tag 推送

    在 VisualStudio 的团队管理功能,提供了方便的添加 Tag 的方法,可以新建一个 Tag 添加 Tag 信息,同时推送某个特定的 Tag 到服务器.配合推 Tag 打包 NuGet 的方法 ...

  4. 【GUI软件】小红书详情数据批量采集,含笔记内容、转评赞藏等,支持多笔记同时采集!

    目录 一.背景介绍 1.1 爬取目标 1.2 演示视频 1.3 软件说明 二.代码讲解 2.1 爬虫采集模块 2.2 软件界面模块 2.3 日志模块 三.获取源码及软件 一.背景介绍 1.1 爬取目标 ...

  5. Ryght 在 Hugging Face 专家助力下赋能医疗保健和生命科学之旅

    本文是 Ryght 团队的客座博文. Ryght 是何方神圣? Ryght 的使命是构建一个专为医疗保健和生命科学领域量身定制的企业级生成式人工智能平台.最近,公司正式公开了 Ryght 预览版 平台 ...

  6. UE4/5 应用角色根运动的问题

    总的来说UE还是有点绕,网上提到的也不是很清晰,记录下. 具体可以下载UE官方示例ContentExample并进入Animation Level进行查看. 在Level中能看到根运动的必要步骤: 1 ...

  7. 比Selenium更优秀的playwright介绍与未来展望

    Playwright是微软开发的,专门为满足端到端测试需求而创建的.Playwright支持包括Chromium.WebKit和Firefox在内的所有现代渲染引擎.在Windows.Linux和ma ...

  8. SDXL

    SDXL 模型经过训练可以创建具有更好图像质量的更大图像.它们还可以拍摄 512x512 分辨率的优质图像,因此就图像质量而言,它们通常是 SD 1 或 2 型号的良好替代品. 但是,它们确实会消耗更 ...

  9. SCSS随笔-mixin与@extend

    变量 定义变量 $color-white: white; 使用变量 body { background-color: $color-white; } @mixin 与 @include 定义mixin ...

  10. 解决:ModuleNotFoundError: No module named ‘urllib3.packages.six.moves问题

    解决方案: 第一步:把selenium版本降到3.3.1 配合urllib3版本1.26.2使用,成功解决 &在python interpreter安装availablePackages se ...