接口 DsonObjectReader

所有超级接口:
AutoCloseable

public interface DsonObjectReader extends AutoCloseable
1.读取数组内普通成员时,name传null,读取嵌套对象时使用无name参数的start方法 2.为减少API数量,我们的所有简单值读取都是带有name参数的,在已读取name的情况下,接口的name参数将被忽略。
作者:
wjybxx date 2023/4/3
  • 方法详细资料

    • readInt

      int readInt(String name)
    • readLong

      long readLong(String name)
    • readFloat

      float readFloat(String name)
    • readDouble

      double readDouble(String name)
    • readBoolean

      boolean readBoolean(String name)
    • readString

      String readString(String name)
    • readNull

      void readNull(String name)
    • readBytes

      default byte[] readBytes(String name)
    • readBinary

      Binary readBinary(String name)
    • readPtr

      ObjectPtr readPtr(String name)
    • readLitePtr

      ObjectLitePtr readLitePtr(String name)
    • readDateTime

      LocalDateTime readDateTime(String name)
    • readExtDateTime

      ExtDateTime readExtDateTime(String name)
    • readTimestamp

      Timestamp readTimestamp(String name)
    • readObject

      @Nullable <T> T readObject(String name, TypeInfo declaredType, Supplier<? extends T> factory)
      读取嵌套对象 注意: 1. 该方法对于无法精确解析的对象,可能返回一个不兼容的类型。 2. 目标类型可以与写入类型不一致,甚至无继承关系,只要数据格式兼容即可 —— 投影。
      参数:
      name - 数组内元素传null或空字符串
      declaredType - 对象声明类型信息
    • readObject

      default <T> T readObject(String name, TypeInfo declaredType)
    • options

      ConverterOptions options()
    • getContextType

      DsonContextType getContextType()
    • readDsonType

      DsonType readDsonType()
      读取下一个数据的类型
    • readName

      String readName()
      读取下一个数据的name
    • readName

      boolean readName(String name)
      读取指定名字的值 -- 可实现随机读 如果尚未调用readDsonType(),该方法将尝试跳转到该name所在的字段。 如果已调用readDsonType(),则name必须与下一个name匹配。 如果已调用readName(),则name可以为null,否则必须当前name匹配。 如果reader不支持随机读,当名字不匹配下一个值时将抛出异常。 返回false的情况下,可继续调用该方法或readDsonType()读取下一个字段。
      返回:
      如果是Object上下文,如果字段存在则返回true,否则返回false; 如果是Array上下文,如果尚未到达数组尾部,则返回true,否则返回false
    • getCurrentDsonType

      DsonType getCurrentDsonType()
    • getCurrentName

      String getCurrentName()
    • readStartObject

      void readStartObject()
      typeInfo用于传递给嵌套对象,以及暂存到Context
    • readEndObject

      void readEndObject()
    • readStartArray

      void readStartArray()
    • readEndArray

      void readEndArray()
    • skipName

      void skipName()
    • skipValue

      void skipValue()
    • skipToEndOfObject

      void skipToEndOfObject()
    • readValueAsBytes

      byte[] readValueAsBytes(String name)
    • decodeKey

      <T> T decodeKey(String keyString, TypeInfo keyTypeInfo)
      解码字典的key
    • setComponentType

      void setComponentType(DsonType dsonType)
      设置数组/object的value的类型,用于精确解析Dson文本
    • setEncoderType

      void setEncoderType(TypeInfo encoderType)
      设置当前对象的encoderType 1.java特殊支持,用于读写Object/Array期间查询当前对象的类型信息 2.应当在readStartObject/Array以后调用
    • getEncoderType

      TypeInfo getEncoderType()
      获取当前对象的类型信息
    • close

      void close()
      指定者:
      close 在接口中 AutoCloseable
    • readStartObject

      default boolean readStartObject(String name)
      返回:
      如果存在对应的字段则返回true
    • readStartArray

      default boolean readStartArray(String name)
      返回:
      如果存在对应的字段则返回true
    • readShort

      default short readShort(String name)
      应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。
    • readByte

      default byte readByte(String name)
    • readChar

      default char readChar(String name)