使用Gson序列化对象时,默认情况下,对象值为"null"的字段在输出值会被忽略(NOTE:collections和arrays中的null对象会被保留)。如果要使Gson序列化对象输出所有的null值,可使用如下方法进行配置。
1 | Gson gson = new GsonBuilder().serializeNulls().create(); |
NOTE: 当使用Gson序列化null值时,它会添加JsonNull元素到JsonElement结构中。
Continue reading使用Gson序列化对象时,默认情况下,对象值为"null"的字段在输出值会被忽略(NOTE:collections和arrays中的null对象会被保留)。如果要使Gson序列化对象输出所有的null值,可使用如下方法进行配置。
1 | Gson gson = new GsonBuilder().serializeNulls().create(); |
NOTE: 当使用Gson序列化null值时,它会添加JsonNull元素到JsonElement结构中。
Continue reading有时候在调试代码时,需要格式化输出JSON字符串,使其便于开发者/测试者查看,本文记录的就是使用Gson如何格式化输出JSON字符串。
Gson默认的JSON输出是紧凑的JSON格式,这意味着在输出的JSON结构中没有任何空白字符,因此,在JSON输出中,字段名及其字段值,对象字段和数组中的对象间都没有空白字符,另外“null”字段在输出时会忽略(NOTE:collections/arrays中的null值会保留)。如果要使用Pretty Print输出JSON,可以使用GsonBuilder配置JsonPrintFormatter,该格式默认会输出80字符宽度,2字符缩进,右边距为4字符。
Continue reading本文记录的是如何使用Gson序列化和反序列化包含不同类型对象的 JSON Array,例如:
1 | ['hello',5,{name:'GREETINGS',source:'guest'}] |
对于这种情况看,使用 Gson toJson(collection)
序列化,无需做额外的工作都能够得到正确的结果,但是,使用
fromJson(json, Collection.class)
反序列化时不能得到期望结果,因为Gson不知道如何将集合中元素与其类型对应起来。可采用如下解决方法:
使用Gson parser
API(JsonParser)解析数组中每个元素,然后对数组中每个元素使用Gson.fromJson()
进行反序列化。示例如下:
本文记录的是使用Gson如何序列化和反序列化实体中部分属性,有两种方式,使用transient
和使用注解@Expose
.
默认情况下,如果使用transient
标注属性,那个该属性在序列化和反序列化时就会被屏蔽。同样地,如果属性声明为static
类型,那么该属性也会被屏蔽.
如下示例所示:
Student对象:
1 | public class Student { |
本文记录的是如何使用Gson处理List对象数据, 包括序列化List对象以及将Json串反序列化为List对象.
首先定义一个Student类, 其属性都是基本类型, 如下所示:
1 | public class Student { |
本文记录的是如何使用Gson处理Array类型数据, 包括将Array对象序列化为Json串以及将Json串反序列化为Array对象.
下面的示例是将数组元素序列化为Json串,如下所示:
Serialization:
1 | Gson gson = new Gson(); |
@Chengdu,WeChat:CaryaLiu
Teacher