创建自己的TypeAdapter

public class MyTypeAdapter extends TypeAdapter() {

@Override

public void write(JsonWriter out, TestObject value) throws IOException {

out.beginObject();

if (!Strings.isNullOrEmpty(value.test1)) {

out.name("test1");

out.value(value.test1);

}

if (!Strings.isNullOrEmpty(value.test2)) {

out.name("test2");

out.value(value.test1);

}

/* similar check for otherObject */

out.endObject();

}

@Override

public TestObject read(JsonReader in) throws IOException {

// do something similar, but the other way around

}

}

然后,您可以向Gson注册。

Gson gson = new GsonBuilder().registerTypeAdapter(TestObject.class, new MyTypeAdapter()).create();

TestObject obj = new TestObject();

obj.test1 = "test1";

obj.test2 = "";

System.out.println(gson.toJson(obj));

产生

{"test1":"test1"}

GsonBuilder类有一些方法来创建自己的序列化/反序列化策略,注册类型适配器和设置其他参数。

弦是番石榴课。你是否拥有检查,如果你不想要依赖。

gson 不忽略空_java – Gson序列化字段只有在不为null或不为空相关推荐

  1. php获取longtext字段为空,php – 在longtext字段上准备好的mysqli select语句将返回空...

    我有一个运行良好的数据库查询功能 – 除了我遇到了 mysqli预处理语句和longtext字段显然已知的问题.即使通过phpMyAdmin运行查询工作正常,longtext字段总是空的,会发生什么. ...

  2. java float类型是否为空_java – 如何使float类型的变量为null

    如果你想要一个可以为空的浮点数,那么试试Float而不是float Float oikonomia= new Float(vprosvasis7.getText().toString()); 但它永远 ...

  3. GSON使用笔记(1) -- 序列化时排除字段的几种方式

    http://blog.csdn.net/zxhoo/article/details/21471005 GSON是Google发布的JSON序列化/反序列化工具,非常容易使用.本文简要讨论在使用GSO ...

  4. Gson解析JSON数据中动态未知字段key的方法

    转载自:https://blog.csdn.net/jdsjlzx/article/details/76785239 有时在解析json数据中的字段key是动态可变的时候,由于Gson是使用静态注解的 ...

  5. 【Gson】【1】Gson使用简介

    一.什么是JSON 1.[定义] JSON(JavaScript Object Notation)是JavaScript对象表示法,用于存储和交换文本信息的语法,类似XML,但比XML更小.更灵活.它 ...

  6. jackson 实体转json 为NULL或者为空不参加序列化

    1.实体上 @JsonInclude(Include.NON_NULL) //将该标记放在属性上,如果该属性为NULL则不参与序列化  //如果放在类上边,那对这个类的全部属性起作用  //Inclu ...

  7. mysql的字段空格是null_MySQL中NULL与空字符串 空格问题

    一些刚刚接触MySQL的孩子,经常会错误的认为NULL与空字符串' '是相同的.这看似是一件不重要的事情,但是在MySQL中,这两者是完全不同的.NULL是指没有值,而''则表示值是存在的,只不过是个 ...

  8. sql2008安装时提示参数不能为空_Java Validation API,实现参数的合法性校验

    Hibernate Validator是Java Validation API(JSR 303)标准的一个具体实现,用于对参数进行合法性校验.校验数据在任何应用中都是一个很常见的任务,所以JCP组织定 ...

  9. mysql设置字段为空字符串_mysql数据类型字段插入空字符串自动填充为0报错

    有一条这样的sql语句, insert into a(id,user_name) values('','abc'); 表示插入字段的时候ID插入是空字符串.这样的情况在mysql5.6版本上执行报错. ...

最新文章

  1. matlab图像处理命令(一)
  2. 请输入有效值,两个最接近的有效值分别为1和2.
  3. 全球及中国PMN-PT单晶行业发展模式及未来产销前景预测报告2022-2028年版
  4. electron/nodejs实现调用golang函数
  5. docker第二天:管理docker镜像与容器(上)
  6. React - 状态提升
  7. Spring安全性和密码编码
  8. 【渝粤教育】国家开放大学2018年春季 0269-21T文学概论 参考试题
  9. java编程有什么独特之处?
  10. python inspect —— 查看类的继承体系
  11. 001-keras简介
  12. 快手作者视频如何批量下载
  13. mysql源码编译安装
  14. iOS-二级评论功能
  15. MML ch 10 主成分分析降维(Dimensionality Reduction with Principal Component Analysis)
  16. 计算机课小组主题作业,计算机应用课程小组学习法的实践
  17. 战争与征服服务器维护,战争与征服 8月29日停机维护公告_战争与征服 8月29日更新了什么_玩游戏网...
  18. 技术 | 从一个钱包被盗的案例,探讨Web3的安全指南
  19. WordPress采集插件-自动采集插件
  20. 惠普服务器系统管理 密码,惠普服务器 DL380 Gen9 server2012R2 登录密码找回全过程...

热门文章

  1. java线程等待按钮点击_java如何用多线程使线程在sleep时等待按钮按下?
  2. docker更新容器命令 ,自启
  3. 在java中为什么_属性绑定到类型_方法绑定到对象_13. Java基础之类型信息(RTTI和反射)...
  4. mysql面试吗hi提_面试必备的10道MySQL题
  5. oracle 字段以逗号结尾的更新 数据库_Oracle数据库某个字段的值为逗号分隔的多个值组成的字符串,以一个多选的下拉框进行查询...
  6. 菜鸟Linux系列:[4]SSH免密码登陆远程服务器
  7. 51单片机之特殊功能寄存器SFR
  8. 目标函数,代价函数,损失函数
  9. 一个简单图书管理系统TSGL的应用数据库
  10. order by + 数字的用意