TypeAdapter 是 Gson 库中用于自定义类型序列化和反序列化的核心抽象类,主要通过write和read方法实现Java对象与JSON数据之间的转换。
write方法
write(JsonWriter out, T value)方法用于将Java对象转换为JSON格式数据。参数JsonWriter提供了写入功能,T代表待转换的Java对象类型。该方法通过泛型设计支持不同数据类型的转换,例如整型、Map类型、自定义类型等。内部实现中,JsonWriter通过包装类完成输出流格式转换,支持将对象输出到字符串或 JsonTree 等不同格式。
read方法
read(JsonReader in)方法用于将JSON数据反序列化为Java对象。参数JsonReader提供读取功能,通过泛型实现从JSON字符串或树形结构中恢复出原始Java对象。该方法内部调用read完成具体类型的数据解析,支持数组、对象、字符串等常见类型的转换。 12
核心功能差异
write:主要负责序列化操作,将Java对象转换为JSON格式(如字符串或树形结构)。
read:主要负责反序列化操作,从JSON数据恢复为Java对象。
TypeAdapter自Gson 2.0版本引入后,替代了早期的 JsonSerializer 和 JsonDeserializer 接口,提供更高效的序列化机制,支持自定义类型转换逻辑。