Gson教程六(译):空值的映射
来源:互联网 发布:seo赚钱方式 编辑:程序博客网 时间:2024/06/03 04:50
该文章翻译自Gson Tutorial Series系列教程。该篇主要阐述了如何使用Gson映射空值。
值为空时将会发生什么?
我们假设你已经阅读了我们关于Gson的首篇博客,里面介绍了UserSimple类以及它的成员变量。在我们之前的例子中,所有的值都设置了。如果某个值为空将会发生什么?例如,我们创建了一个user,他拥有邮件,年龄而且是一名开发者,但是名字为空。
UserSimple userObject = new UserSimple(null, "norman@futurestud.io", 26, true);
这行Java代码是有效的,它的结果是一个常规的UserSimple对象。如果我们现在使用Gson创建它的JSON,它看起来会怎么样呢?
UserSimple userObject = new UserSimple(null, "norman@futurestud.io", 26, true);Gson gson = new Gson(); String userJson = gson.toJson(userObject); // userJson = ??
Gson将会创建如下JSON:
{ "age": 26, "email": "norman@futurestud.io", "isDeveloper": true}
Gson在序列化的时候会简单的忽视空值!如果一个值没有设置,那么它就不会存在JSON结果中。如果你需要使该空值依然出现在你的JSON中(以null代替),Gson有提供方法。但我们最好在后面探讨这一点。
现在最重要的是使你明白在序列化时,Gson并没有为JSON创建空值。
反序列化时类似的。假设有如下缺少email的JSON:
{ "age": 26, "isDeveloper": true, "name": "Norman"}
尽管email缺失了,Gson依然会尽量映射准确。它会使所有不存在的域的Java对象都置空:
当然,将一个可为空的成员变量(如String类型)设为空是容易的,但是,如何设置一个不能置空的类型呢?例如,想象有如下JSON:
{ "email": "norman@futurestud.io", "name": "Norman"}
age(int类型)和isDeveloper(boolean类型)并不接受空值。在这种情况下,Gson也不会出错,它会使用它们的默认值(分别为0和false):
阅读全文
0 0
- Gson教程六(译):空值的映射
- Gson-空值映射
- Gson教程三(译):Arrays和Lists的映射
- Gson教程四(译):Maps的映射
- Gson教程五(译):Sets的映射
- Gson教程十一(译):轻松使用仁慈的Gson(容错机制)
- Gson教程十二(译):Float和Double类型的特殊值
- Gson教程九(译):强制序列化null值
- Gson教程十(译):Exclusion Strategies
- Retrofit Gson解析空字符串的问题
- Retrofit Gson解析空字符串的问题
- Gson解析空字符串异常的处理
- Gson教程一(译):Java-JSON的序列化和反序列化
- Gson教程二(译):嵌套对象的序列化和反序列化
- Gson源码学习笔记(1)——Gson使用教程(译)
- Gson教程七(译):@SerializedName和@Expose
- Gson教程八(译):GsonBuilder基础和命名策略
- Gson 教程
- C++入门学习第一天
- Sql server 2014 安装教程
- Linux(Centos)之安装Nginx及注意事项
- Django第一个项目
- 关于jQuery中noConflict()用法分析(转)
- Gson教程六(译):空值的映射
- OpenGL 资料汇总
- activemq案例
- APNS 推送
- 前端使用组件和常出现问题链接
- 关于“定金”的法律规定及司法解释
- 基于python impyla,pyhs2的hive客户端
- 【C++】模板类、特化以及偏特化!!!
- iOS内存检测工具Analyze的使用