- 所有超级接口:
AutoCloseable
1.读取数组内普通成员时,name传null,读取嵌套对象时使用无name参数的start方法
2.为减少API数量,我们的所有简单值读取都是带有name参数的,在已读取name的情况下,接口的name参数将被忽略。
- 作者:
- wjybxx date 2023/4/3
-
方法概要
修饰符和类型方法说明voidclose()<T> T解码字典的keycn.wjybxx.base.TypeInfo获取当前对象的类型信息options()readBinary(String name) booleanreadBoolean(String name) default bytedefault byte[]default charreadDateTime(String name) doublereadDouble(String name) 读取下一个数据的类型voidvoidreadExtDateTime(String name) floatintreadLitePtr(String name) longreadName()读取下一个数据的nameboolean读取指定名字的值 -- 可实现随机读 如果尚未调用readDsonType(),该方法将尝试跳转到该name所在的字段。voiddefault <T> TreadObject(String name, cn.wjybxx.base.TypeInfo declaredType) <T> TreadObject(String name, cn.wjybxx.base.TypeInfo declaredType, Supplier<? extends T> factory) 读取嵌套对象 注意: 1.default short应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。voiddefault booleanreadStartArray(String name) voidtypeInfo用于传递给嵌套对象,以及暂存到Contextdefault booleanreadStartObject(String name) readString(String name) readTimestamp(String name) byte[]readValueAsBytes(String name) voidsetComponentType(DsonType dsonType) 设置数组/object的value的类型,用于精确解析Dson文本voidsetEnableNameIntern(Boolean value) 设置是否启用name池化voidsetEncoderType(cn.wjybxx.base.TypeInfo encoderType) 设置当前对象的encoderType 1.java特殊支持,用于读写Object/Array期间查询当前对象的类型信息 2.应当在readStartObject/Array以后调用voidskipName()voidvoid
-
方法详细资料
-
readInt
-
readLong
-
readFloat
-
readDouble
-
readBoolean
-
readString
-
readNull
-
readBytes
-
readBinary
-
readPtr
-
readLitePtr
-
readDateTime
-
readExtDateTime
-
readTimestamp
-
readObject
@Nullable <T> T readObject(String name, cn.wjybxx.base.TypeInfo declaredType, Supplier<? extends T> factory) 读取嵌套对象 注意: 1. 该方法对于无法精确解析的对象,可能返回一个不兼容的类型。 2. 目标类型可以与写入类型不一致,甚至无继承关系,只要数据格式兼容即可 —— 投影。- 参数:
name- 数组内元素传null或空字符串declaredType- 对象声明类型信息
-
readObject
-
options
ConverterOptions options() -
getContextType
DsonContextType getContextType() -
readDsonType
DsonType readDsonType()读取下一个数据的类型 -
readName
String readName()读取下一个数据的name -
readName
读取指定名字的值 -- 可实现随机读 如果尚未调用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
-
decodeKey
解码字典的key -
setEnableNameIntern
设置是否启用name池化 -
setComponentType
设置数组/object的value的类型,用于精确解析Dson文本 -
setEncoderType
void setEncoderType(cn.wjybxx.base.TypeInfo encoderType) 设置当前对象的encoderType 1.java特殊支持,用于读写Object/Array期间查询当前对象的类型信息 2.应当在readStartObject/Array以后调用 -
getEncoderType
cn.wjybxx.base.TypeInfo getEncoderType()获取当前对象的类型信息 -
close
void close()- 指定者:
close在接口中AutoCloseable
-
readStartObject
- 返回:
- 如果存在对应的字段则返回true
-
readStartArray
- 返回:
- 如果存在对应的字段则返回true
-
readShort
应当减少 short/byte/char 的使用,尤其应当避免使用其包装类型,使用的越多越难以扩展,越难以支持跨语言等。 -
readByte
-
readChar
-