
Gson源码
文章平均质量分 65
meijing11
这个作者很懒,什么都没留下…
展开
-
Gson源码解析之GsonBuilder
当Json序列化和反序列化操作时需要创建Gson对象来帮助完成,而创建Gson的方式有两种方式方式1:直接创建Gson对象,然后对json字符串进行序列化和反序列化操作 public static class ExposeBean { public String firstName; public String lastName; public String emailAddress; public String pa原创 2021-08-20 23:45:32 · 2990 阅读 · 0 评论 -
Gson源码之反序列化(json 字符串转换为 Java Object)
1.将一个json 字符串转换为 Java Bean的例子public class GsonDeserializer { private String name; private List<AuthorsBean> authors; public String getName() { return name; } public void setName(String name) { this.name = name原创 2021-08-19 10:56:27 · 948 阅读 · 0 评论 -
Gson源码之反序列化(json 字符串转换为 Java Array)
1.将一个json 字符串转换为 Java 集合的例子public class GsonDeserializer { static class AuthorsBean{ private String id; private String name; public String getId() { return id; } public void setId(String id) {原创 2021-08-19 22:09:35 · 1227 阅读 · 0 评论 -
Gson源码之序列化(Java Array转String)
通过Gson将Java Array(数组)转换为String的入口是toJson(),那它到底做了什么?1.Gson的构造函数主要是初始化factories (TypeAdapterFactory 集合),便于在getAapter()根据数据类型返回对应的TypeAdapterFactory,从而获取对应的TypeAdapter进行序列化和反序列化。 toJson()是序列化入口,首先会判断传入的数据是不是空,如为空则调用参数为JsonElement的toJson()方法;若不为空则调用传入Object和原创 2021-08-17 22:53:17 · 1014 阅读 · 0 评论 -
Gson源码之序列化(Java Object转String)
通过Gson将Java Bean转换为String的入口是toJson(),那它到底做了什么?1.Gson的构造函数主要是初始化factories (TypeAdapterFactory 集合),便于在getAapter()根据数据类型返回对应的TypeAdapterFactory,从而获取对应的TypeAdapter进行序列化和反序列化。 toJson()是序列化入口,首先会判断传入的数据是不是空,如为空则调用参数为JsonElement的toJson()方法;若不为空则调用传入Object和Class原创 2021-08-17 22:35:57 · 1715 阅读 · 0 评论 -
Gson源码解析之JsonReader/JsonWriter
JsonWriter1.包装了Writer, 进行数据的写入,用于序列化操作 beginObject:通过open()写入json是object的起始符号{,在写入数据之前需要调用该方法 endObject:通过clase()写入json是object的结束符号} 在写入数据结束后需要调用该方法 beginArray:通过open()写入json是array的起始符号[,在写入数据之前需要调用该方法 endArray:通过close()写入json是array的结原创 2021-08-17 21:48:59 · 814 阅读 · 0 评论 -
Gson源码之TypeAdapterFactory
TypeAdapterFactory1.接口类,主要是用来创建TypeAdapter对象的2.若Json中的数据结构相同,可以进行共享3.其实现类分别是JsonAdapterAnnotationTypeAdapterFactory/ReflectiveTypeAdapterFactory/以及TypeAdapters中各种已经数据类型对应的factory源码 public interface TypeAdapterFactory { /** * 创建一个类型原创 2021-08-17 21:44:25 · 786 阅读 · 0 评论 -
Gson源码之TypeAdapter
TypeAdapter1.抽象泛型类 抽象方法为write/read方法2.该类主要用于进行读写操作,用于Json字符串和java object之间进行转换方法说明 write(JsonWriter out, T value) 抽象方法 参数是JsonWrite以及java object。客户端用于进行写入操作 toJson(T value) 创建JsonWriter对象,然后将其和value一起传入write方法中 用于将Java Object转换为Js原创 2021-08-17 21:27:40 · 813 阅读 · 0 评论 -
Gson源码解析之JsonElement
Gson组成之JsonElement抽象类。抽象方法是deepCopy()是Gson数据类型的基础类,其子类有对象(JsonObject),数组(JsonArray),空数据(JsonNull), JsonPrimitive(基本数据类型 byte/short/char/boolean/int/long/double/float/number/string) 用于标识各种数据类型通过isJsonObject()/isJsonArray()/isJsonNull()/isJsonPrimitive()原创 2021-08-17 21:09:13 · 2336 阅读 · 0 评论 -
Gson源码之Type和TypeToken
Type1.定义 是Java中所有类型的公共高级接口,代表了Java中的所有类型 2.类型体系 数组类型(GenericArrayType) 例如泛型数组 T[] 参数化类型(ParamterizedType) 例如list/map 类型变量(TypeVariable) 通配符类型(WildcardType) 例如 <?>. <? extend T> 原原创 2021-08-17 20:42:47 · 1591 阅读 · 0 评论 -
Gson源码解析之注解
在Gson中有五种注解Gson注解之Expose1.该注解作用于属性,在运行时有效2.主要设置属性是否参与序列化和反序列化3.默认有两个方法 serialize() 是否参与序列化 true:参与序列化 false:不参与序列化。默认为true deserialize() 是否参与反序列化。true:参与反序列化 false:不参与反序列化 默认为true4.源码 @Documented @Retention(RetentionPolicy.RUNTIM.原创 2021-08-17 18:31:57 · 2189 阅读 · 0 评论