Gson系列
文章平均质量分 81
DN-CS BISHA
来自星星的我
展开
-
Gson系列3 --- 注解篇 -- @Expose
1、简述[@Expose -- GsonBuilder] 用于类属性 是否 序列化和反序列化 Expose: serialize 为 false 代表不进行序列化 deserialize 为false 代表 不进行反序列化 由于序列化时 排除某些 属性 * 注意 1. 需要建立在 GsonBuilder下才会起作用 gso...原创 2018-07-09 17:37:42 · 6733 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 简单对象序列化
1、对于引用类型 和 基本类型 序列化时 (在默认值方面) 是不一样的# QuickStart因为 Gson 只有这一个 对外 公开的构造器, public Gson() { } 而其内部的属性皆是 final修饰的,故 在已创建 new Gson() 所有的属性都会被初始化,且不可改变, 即 Gson 序列化和 反序列化 都是采用的 策略和规则 都是默认的行为...原创 2018-07-07 15:48:11 · 986 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 简单嵌套对象序列化
1、简介> 嵌套对象序列化 与简单对象序列化基本一致,会把 嵌套对象作为一个json 的 子 json对象 如下格式 inner 为 嵌套对象的属性名 { "nick": "A", "mobile": "B", "inner": { "id": 101,原创 2018-07-07 15:54:53 · 1106 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 类的继承 序列化
1、简述> 类的继承 序列化 单个类序列化与反序列化: 等同于简单对象的序列化 多态类型是可以进行 序列化,但是 反序列化会出错 解决方式 : 见泛型序列化 / 多态序列化2、基本类 GsonFather 是 父类 ,GsonSon 和 GsonDaughter 是子类GsonExtends 是 包含的父类 -- 进行绑定子类进行测试@Data@AllArgsConstr...原创 2018-07-07 16:01:28 · 2820 阅读 · 1 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 接口类型序列化
1、简述> 接口类型序列化 接口形式的嵌套类 可以进行 序列化 ,但是 反序列化 会出错, 由于接口不可被实例化,故在反序列化时 会出错。 对于多态的形式 -- 会在后面的 TypeAdapterFactory / TypeAdapter中去解决 可参考 关于多态的绑定 RuntimeTypeAdapterFactory2、基本类public interface G...原创 2018-07-07 16:06:53 · 1841 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 泛型序列化
1、简述泛型序列化 解决接口类型不能反序列化的问题,采用泛型的形式 来解决接口形式 泛型序列化在嵌套对象的基础上,进一步进行抽象的序列化, 可以实现多态形式的序列化与反序列化 采用 new TypeToken<XXX>() {}.getType()) 的形式进行反序列化2、基本类/** * 泛型形式的单个属性 序列化 * @author sunRainA...原创 2018-07-07 16:15:36 · 2617 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 数组 / 集合序列化
1、简述> 数组 / 集合序列化 采用数组的形式 gson.fromJson(json, XXX[].class); 采用集合List的形式 gson.fromJson(json, new TypeToken<XXX>() {}.getType());2.基本类/** * 基本类 * @author sunRainAmazing */@Data@NoA...原创 2018-07-07 16:20:49 · 4388 阅读 · 0 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- map序列化
1、简述> map序列化 map序列化(带有key-value的形式, 可嵌套map) gson.fromJson(json, new TypeToken<XXX>() {}.getType()); 如 gson.fromJson(json, new TypeToken<Map<String,Object>>() {}.getType...原创 2018-07-07 16:24:49 · 2702 阅读 · 0 评论 -
Gson系列2 --- 番外篇 -- 对于多态对象的解析
1、简述> 番外篇 对于多态对象的解析 需要引用 使用 RuntimeTypeAdapterFactory 类解决多态问题,但是这个类需要单独下载, githut地址 RuntimeTypeAdapterFactory.java 1、需要将这个 RuntimeTypeAdapterFactory 类复制到项目中去, 2、反序列化json 还需要 添加额外(或已知)...原创 2018-07-07 16:37:25 · 4049 阅读 · 1 评论 -
Gson系列1 --- Gson 序列化与反序列化 -- 基本类型序列化
1、基本使用: 导入相关 pom<!-- gson --><!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --><dependency> <groupId>com.google.code.gson</groupId> <artif...原创 2018-07-07 15:39:03 · 1168 阅读 · 0 评论 -
Gson系列6 --- 问题篇 -- GSON处理JSON数据中Long型的数据变成 科学计数法的问题解决方案
对于 Gson 转换数值long 类型有一定的缺陷,总是转换成科学计数法的形式Gson 转换long到科学计数法的解决方法 如下json{"username":"tomcat","uuid":123456789012}转成的结果{username=tomcat, uuid=1.23456789012E11}很明显,不符合我们的要求, 因此需要改变所需的依...原创 2018-07-23 16:43:13 · 11622 阅读 · 0 评论 -
Gson系列5 --- 总结篇 -- TypeAdapter JsonSerializer 与 JsonDeserializer @JsonAdapter
# TypeAdapter JsonSerializer 与 JsonDeserializer @JsonAdapter类的序列化与反序列化@SEE @JsonAdapter篇 和 序列化null值 方式1: JsonSerializer 与 JsonDeserializer 可以 自动的与 @JsonAdapter 使用 方式2: 也可以手动注册...原创 2018-07-10 17:59:46 · 4527 阅读 · 0 评论 -
Gson系列3 --- 注解篇 -- @SerializedName
1、简述[@SerializedName -- GsonBuilder/Gson] 用于序列化时或反序列化时, 改变属性的名称 value : 序列化时的属性的名称,默认是属性本身 alternate: 是反序列化时 属性的别名 同时 改变序列化时 属性的名称的 方式 有很多种方式 还可以采用 自定义FieldNamingStrategy的形式(见后续文...原创 2018-07-09 17:41:05 · 2934 阅读 · 0 评论 -
Gson系列3 --- 注解篇 -- @JsonAdapter
1、简述[@JsonAdapter -- GsonBuilder/Gson] 针对于非null值, 若存在null 值 , 则不会起作用 主要用于序列化,可放置在属性上, 该对应的value值 必须 实现 JsonSerializer<T>接口 对于属性 为 null值 , new Gson() 则不进行序列化 反序列化 则 需要...原创 2018-07-09 17:47:10 · 6469 阅读 · 0 评论 -
Gson系列3 --- 注解篇 -- @Since @Until
1、简述[@Since @Until -- GsonBuilder] 控制实体类的字段/属性的 版本问题 在序列化时: 只有配置了new GsonBuilder() .setVersion(double v)时, @Since(double v)、@Until(double v)才会起作用。 2、实体类...原创 2018-07-09 17:50:09 · 2237 阅读 · 1 评论 -
Gson系列4 --- 策略篇 -- FieldNamingStrategy
1、简述[FieldNamingStrategy] 属性命名策略 -- 用于自定义 json key 的形式 new GsonBuilder() // 采用自定义的策略 .setFieldNamingStrategy(new FieldStrategy.AllUpperCaseStrategy()) // 采用 默认类的策略 .setField...原创 2018-07-09 18:00:37 · 3145 阅读 · 0 评论 -
Gson系列4 --- 策略篇 -- ExclusionStrategy
1、简述 [ExclusionStrategy]排除策略 用于排除相关的属性 作用等同于 @Expose 和 transient自定义相关注解 进行排除操作 自定义排除属性注解2、实体package sun.rain.amazing.gson.strategy.exclude;import java.lang.annotation.ElementType;imp...原创 2018-07-09 18:05:14 · 2562 阅读 · 0 评论 -
Gson系列4 --- 策略篇 -- LongSerializationPolicy FieldNamingPolicy
1、简述> 内置的默认策略 [LongSerializationPolicy] 有数值 类型 和 字符类型 gson = new GsonBuilder() // 把 long 类型 改成String类型 也可以自定义类型 .setLongSerializationPolicy(LongSerializationPolicy.ST...原创 2018-07-09 18:08:05 · 2160 阅读 · 0 评论 -
Gson系列5 --- 总结篇 -- @Expose 和 transient @Since @Until、 ExclusionStrategy 和 自定义注解
# @Expose 和 transient @Since @Until ExclusionStrategy 和 自定义注解类属性的字段过滤 1、属性注解 @Expose 对应的链接 2、版本注解 @Since 和 @Until 对应的链接 3、修饰符 public、static 、final、private、protected 、transient ...原创 2018-07-09 18:15:55 · 3273 阅读 · 0 评论 -
Gson系列5 --- 总结篇 -- @SerializedName FieldNamingStrategy 和 FieldNamingPolicy 和 自定义注解
# @SerializedName FieldNamingStrategy 和 FieldNamingPolicy 和 自定义注解 1、注解 @SerializedName 2、命名策略(内置策略 和 自定义策略) 2.1 内置策略规则 默认规则 FieldNamingPolicy [IDENTITY] : 返回本身的格式 ...原创 2018-07-10 17:48:25 · 1568 阅读 · 0 评论 -
Gson系列2 --- 番外篇 -- Gson如何序列化值为null的属性为空字符串或null
1、简述> 番外篇 如何序列化值为null的属性 方式1: new GsonBuilder().serializeNulls().create(); 方式2: 重写相应的 TypeAdapters 解析规则 -- 将null 转换为空字符串 方式3: 自定义 TypeAdapterFactory 下面重点介绍方式2 和 方式32、方式2 重写TypeAdap...原创 2018-07-07 16:57:57 · 4248 阅读 · 0 评论