小编典典

创建自己的 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班有一堆的方法来创建自己的序列化/反序列化战略,注册类型的适配器,等参数进行设置。

Strings是番石榴课。如果您不需要这种依赖性,则可以自己进行检查。

2020-07-27

gson 不忽略空_仅在不为null或不为空的情况下,Gson序列化字段相关推荐

  1. golang判断结构体为空_如何在Golang中检查结构是否为空?

    golang判断结构体为空 The size of an empty structure is zero in Golang. Here, empty structure means, there i ...

  2. 判断表达式值是否为空_如何在 Python 中判断列表是否为空

    在判断列表是否为空时,你更喜欢哪种方式?决定因素是什么? 在 Python 中有很多检查列表是否是空的方式,在讨论解决方案前,先说一下不同方法涉及到的不同因素. 我们可以把判断表达式可以分为两个阵营: ...

  3. python3.7.1使用_在不影响使用python3.7.1的功能的情况下,是否可以从python代码中删除所有的ufuture_uu语句?...

    您可以在不影响功能的情况下删除那些__future__导入,但是删除它们不是必需的,并且会停止与早期python版本的兼容性.在 此外,正如@deceze在评论中所暗示的那样,其他进口商品可能有所不同 ...

  4. enti下载器_短跑enti策略:如何在不破坏软件的情况下改进软件

    enti下载器 我们的代码已被破坏了几个星期. 编译器错误,测试失败,行为错误困扰着我们的团队. 为什么? 因为我们被盲目蛙跳打了. 通过对关键组件进行多次并发更改以希望对其进行改进,我们已经从其丑陋 ...

  5. 软件问题造成的经济损失案例_在无法准确认定经济损失、用户数量的情况下,如何认定破坏计算机信息系统的“后果严重”...

    最高人民法院刑事审判参考性案例 乐姿等破坏计算机信息系统案(<刑事审判参考>指导案例第1029号) 裁判摘要:在案证据无法证明受害公司遭受的经济损失达到入罪标准,也无法根据受侵害的用户数量 ...

  6. 优盘复制进来为空_为什么复制后文件夹u磁盘为空

    本文收集并整理了有关为什么文件夹U盘在复制时为空的相关问题,并使用内容导航来快速访问它. 内容导航: Q1: 为什么将空文件夹复制到U盘 您刚刚复制了一种快速搜索方法! Q2: 将文件复制到USB闪存 ...

  7. 力改变物体形状举例_对旋转问题的思考-在离心力确定的情况下,物体的旋转情况如何通过宇宙中的相对运动情况和质量分布确定?...

    旋转会产生离心力,因此可以通过对加速度的测定完成对物体旋转情况的测定.这是一种众所周知的测定旋转的方式, 我把它描述成第一种旋转确定方式,即定义式的确定方式. 可是小伙伴们会问了:如果没有测力器,如何 ...

  8. 安卓ssr无网络连接_解决Android模拟器网络问题(使用了代理的情况下)

    没错,又是AS的网络问题,而且又是代理的问题,真是不省心呐!! 最近在做curl移植到Android JNI的工作,老是出现 CURLE_PARTIAL_FILE 错误. 用Wireshark抓包居然 ...

  9. java6打印机不能用_高分求解:java中调用的打印机在什么情况下不可用?

    java文档中说PrinterJob类中的getPrinterJob()方法无论返回的打印机是否可用都不会返回一个null值.我查阅过一些文献有介绍说可以用getPrintService()方法测试返 ...

最新文章

  1. linux7怎样搭建zabbix,Centos7.0 搭建Zabbix环境
  2. 数据库设计性能与效率
  3. [C#1] 10-事件
  4. 前端之JavaScript 补充
  5. 并发工具类(四)线程间的交换数据 Exchanger
  6. 封装log4cp p
  7. sql注入语句示例大全_SQL Group By语句用示例语法解释
  8. Leetcode-探索 | 买股票的最佳时机II
  9. 每天一个linux命令
  10. Chromium OS Autotest 客户端测试
  11. Reflection probes
  12. PMP项目管理是什么?
  13. 机器学习实战——2.3 示例:手写识别系统
  14. 无法搜索到对方电脑共享的文件
  15. 红楼梦人物出场次数统计
  16. android bootload漏洞,诺基亚 5/6 第一代 Bootloader 漏洞解锁方法 (测试)
  17. 门头沟的《一出好戏》
  18. linux vim取消加密,linux 使用vim文件加密/解密的方法
  19. Access to XMLHttpRequest at ‘xxx‘ from origin ‘http://localhost:8082‘has been blocked by CORS policy
  20. 计算机保研夏令营预推免面试经验(吉林大学+哈工大威海+北京理工医工融合

热门文章

  1. 【python问题系列--4】ValueError: operands could not be broadcast together with shapes (100,3) (3,1)...
  2. cmd jar 无效_为什么我的JAR文件以CMD执行,而不是双击执行?
  3. ip 地址 192.168.1.255 代表( )。_如何批量ping大量ip地址?一个软件搞定
  4. mysql for oracle_模块与包 Mysql与Oracle区别
  5. 域名型通配符ssl证书_西部数码使用指南:申请了主域名SSL证书,是否还需要申请www域名的...
  6. Some personal records
  7. node mysql登录注册_Node数据库入门(登录注册功能)
  8. java斗地主怎么出牌_斗地主滑动选牌出牌(Cocos Creator)
  9. 剑指offer面试题[9-1]-跳台阶
  10. 何时适合进行自动化测试?(上)