- 所有超级接口:
Converter
- 所有已知实现类:
DefaultDsonConverter
文档转换器
将对象转换为文档或类文档结构,比如:Json/Bson/Yaml/Lua,主要用于持久化存储
1.文档是指人类可读的文本结构,以可读性为主,与文档型数据库并不直接关联。
2.在设计上,文档编解码器对效率和压缩比例的追求较低,API会考虑易用性,因此DsonObjectReader提供随机读的API。
3.在设计上,是为了持久化的,为避免破坏用户数据,因此对于数组类型的数据结构不存储其类型信息,因此缺少静态类型信息的地方将无法准确解码。
4.文档型结构不支持key为复杂Object,默认只支持IntegerLongString,即基础的整数(转字符串)和直接字符串,
5.对于枚举,为保持跨语言兼容性,枚举默认编码为int32或string,因此枚举不能被装箱,否则无法精确反序列化。
至于是否支持枚举key和字符串之间的转换,与具体的实现有关。
- 作者:
- wjybxx date 2023/4/4
-
方法概要
修饰符和类型方法说明options()readAsDsonCollection(Reader source) 将Dson源解码为DsonValue中间对象 -- 读取全部数据,header存储在外层容器(DsonArray)上。readAsDsonValue(Reader source) 将Dson源解码为DsonValue中间对象 -- 只读取一个顶层对象。default <T> TreadFromDson(Reader source, TypeInfo<T> typeInfo) <T> TreadFromDson(Reader source, TypeInfo<T> typeInfo, Supplier<? extends T> factory) 从数据源中读取一个对象 (默认不关闭reader)default ObjectreadFromDson(CharSequence source) default <T> TreadFromDson(CharSequence source, TypeInfo<T> typeInfo) <T> TreadFromDson(CharSequence source, TypeInfo<T> typeInfo, Supplier<? extends T> factory) 从数据源中读取一个对象default <T> TreadFromDsonValue(DsonValue source, TypeInfo<T> typeInfo) <T> TreadFromDsonValue(DsonValue source, TypeInfo<T> typeInfo, Supplier<? extends T> factory) withOptions(ConverterOptions options) 在共享其它属性的情况,创建一个持有给定options的Converterdefault StringwriteAsDson(Object value) default StringwriteAsDson(Object value, TypeInfo<?> typeInfo) writeAsDson(Object value, TypeInfo<?> typeInfo, ObjectStyle style) 将一个对象写入源 如果对象的运行时类型和TypeInfo.rawType一致,则会省去编码结果中的类型信息, 使用TypeInfo.NONE也可以避免写入类型信息。default voidwriteAsDson(Object value, TypeInfo<?> typeInfo, Writer writer) voidwriteAsDson(Object value, TypeInfo<?> typeInfo, Writer writer, ObjectStyle style) 将一个对象写入指定writer (默认不关闭writer)writeAsDsonValue(Object value, TypeInfo<?> typeInfo) 将一个对象写为DsonObject或DsonArray
-
方法详细资料
-
writeAsDson
将一个对象写入源 如果对象的运行时类型和TypeInfo.rawType一致,则会省去编码结果中的类型信息, 使用TypeInfo.NONE也可以避免写入类型信息。- 参数:
typeInfo- 对象的类型信息style- 缩进格式
-
readFromDson
<T> T readFromDson(CharSequence source, TypeInfo<T> typeInfo, @Nullable Supplier<? extends T> factory) 从数据源中读取一个对象- 参数:
source- 数据源typeInfo- 要读取的目标类型信息,部分实现支持投影
-
writeAsDson
将一个对象写入指定writer (默认不关闭writer)- 参数:
typeInfo- 对象的类型信息writer- 用于接收输出style- 缩进格式
-
readFromDson
从数据源中读取一个对象 (默认不关闭reader)- 参数:
source- 用于支持大数据源typeInfo- 要读取的目标类型信息,部分实现支持投影
-
writeAsDsonValue
将一个对象写为DsonObject或DsonArray- 参数:
value- 顶层对象必须的容器对象,Object和数组typeInfo- 对象的类型信息- 返回:
DsonObject或DsonArray
-
readFromDsonValue
<T> T readFromDsonValue(DsonValue source, TypeInfo<T> typeInfo, @Nullable Supplier<? extends T> factory) - 参数:
source-DsonObject或DsonArraytypeInfo- 要读取的目标类型信息
-
readAsDsonValue
将Dson源解码为DsonValue中间对象 -- 只读取一个顶层对象。 外部可以保存该对象,以提高重复反序列化的效率。 (默认不关闭Reader)- 参数:
source- 数据源- 返回:
- 中间对象
-
readAsDsonCollection
将Dson源解码为DsonValue中间对象 -- 读取全部数据,header存储在外层容器(DsonArray)上。 外部可以保存该对象,以提高重复反序列化的效率。 (默认不关闭Reader)- 参数:
source- 数据源- 返回:
- 中间对象
-
writeAsDson
-
writeAsDson
-
readFromDson
-
readFromDson
-
writeAsDson
-
readFromDson
-
readFromDsonValue
-
codecRegistry
DsonCodecRegistry codecRegistry() -
typeMetaRegistry
TypeMetaRegistry typeMetaRegistry() -
options
ConverterOptions options() -
withOptions
在共享其它属性的情况,创建一个持有给定options的Converter
-