接口 DsonConverter

所有超级接口:
Converter
所有已知实现类:
DefaultDsonConverter

@ThreadSafe public interface DsonConverter extends Converter
文档转换器 将对象转换为文档或类文档结构,比如:Json/Bson/Yaml/Lua,主要用于持久化存储

1.文档是指人类可读的文本结构,以可读性为主,与文档型数据库并不直接关联。 2.在设计上,文档编解码器对效率和压缩比例的追求较低,API会考虑易用性,因此DsonObjectReader提供随机读的API。 3.在设计上,是为了持久化的,为避免破坏用户数据,因此对于数组类型的数据结构不存储其类型信息,因此缺少静态类型信息的地方将无法准确解码。 4.文档型结构不支持key为复杂Object,默认只支持IntegerLongString,即基础的整数(转字符串)和直接字符串, 5.对于枚举,为保持跨语言兼容性,枚举默认编码为int32string,因此枚举不能被装箱,否则无法精确反序列化。 至于是否支持枚举key和字符串之间的转换,与具体的实现有关。

作者:
wjybxx date 2023/4/4
  • 方法详细资料

    • writeAsDson

      @Nonnull String writeAsDson(Object value, TypeInfo<?> typeInfo, ObjectStyle style)
      将一个对象写入源 如果对象的运行时类型和TypeInfo.rawType一致,则会省去编码结果中的类型信息, 使用TypeInfo.NONE也可以避免写入类型信息。
      参数:
      typeInfo - 对象的类型信息
      style - 缩进格式
    • readFromDson

      <T> T readFromDson(CharSequence source, TypeInfo<T> typeInfo, @Nullable Supplier<? extends T> factory)
      从数据源中读取一个对象
      参数:
      source - 数据源
      typeInfo - 要读取的目标类型信息,部分实现支持投影
    • writeAsDson

      void writeAsDson(Object value, TypeInfo<?> typeInfo, Writer writer, ObjectStyle style)
      将一个对象写入指定writer (默认不关闭writer)
      参数:
      typeInfo - 对象的类型信息
      writer - 用于接收输出
      style - 缩进格式
    • readFromDson

      <T> T readFromDson(Reader source, TypeInfo<T> typeInfo, @Nullable Supplier<? extends T> factory)
      从数据源中读取一个对象 (默认不关闭reader)
      参数:
      source - 用于支持大数据源
      typeInfo - 要读取的目标类型信息,部分实现支持投影
    • writeAsDsonValue

      DsonValue writeAsDsonValue(Object value, TypeInfo<?> typeInfo)
      将一个对象写为DsonObjectDsonArray
      参数:
      value - 顶层对象必须的容器对象,Object和数组
      typeInfo - 对象的类型信息
      返回:
      DsonObjectDsonArray
    • readFromDsonValue

      <T> T readFromDsonValue(DsonValue source, TypeInfo<T> typeInfo, @Nullable Supplier<? extends T> factory)
      参数:
      source - DsonObjectDsonArray
      typeInfo - 要读取的目标类型信息
    • readAsDsonValue

      DsonValue readAsDsonValue(Reader source)
      将Dson源解码为DsonValue中间对象 -- 只读取一个顶层对象。 外部可以保存该对象,以提高重复反序列化的效率。 (默认不关闭Reader)
      参数:
      source - 数据源
      返回:
      中间对象
    • readAsDsonCollection

      DsonArray<String> readAsDsonCollection(Reader source)
      将Dson源解码为DsonValue中间对象 -- 读取全部数据,header存储在外层容器(DsonArray)上。 外部可以保存该对象,以提高重复反序列化的效率。 (默认不关闭Reader)
      参数:
      source - 数据源
      返回:
      中间对象
    • writeAsDson

      default String writeAsDson(Object value)
    • writeAsDson

      default String writeAsDson(Object value, TypeInfo<?> typeInfo)
    • readFromDson

      default Object readFromDson(CharSequence source)
    • readFromDson

      default <T> T readFromDson(CharSequence source, TypeInfo<T> typeInfo)
    • writeAsDson

      default void writeAsDson(Object value, TypeInfo<?> typeInfo, Writer writer)
    • readFromDson

      default <T> T readFromDson(Reader source, TypeInfo<T> typeInfo)
    • readFromDsonValue

      default <T> T readFromDsonValue(DsonValue source, TypeInfo<T> typeInfo)
    • codecRegistry

      DsonCodecRegistry codecRegistry()
    • typeMetaRegistry

      TypeMetaRegistry typeMetaRegistry()
    • options

      ConverterOptions options()
    • withOptions

      DsonConverter withOptions(ConverterOptions options)
      在共享其它属性的情况,创建一个持有给定options的Converter