- java.lang.Object
-
- org.redkale.convert.Reader
-
- org.redkale.convert.json.JsonReader
-
- 直接已知子类:
JsonByteBufferReader
public class JsonReader extends Reader
JSON数据源详情见: https://redkale.org
- 作者:
- zhangjx
-
-
嵌套类概要
嵌套类 修饰符和类型 类 说明 protected static class
JsonReader.CharArray
-
从类继承的嵌套类/接口 org.redkale.convert.Reader
Reader.ValueType
-
-
字段概要
字段 修饰符和类型 字段 说明 protected static int[]
digits
protected int
position
-
从类继承的字段 org.redkale.convert.Reader
SIGN_NULL, SIGN_VARIABLE
-
-
构造器概要
构造器 构造器 说明 JsonReader()
JsonReader(char[] text)
JsonReader(char[] text, int start, int len)
JsonReader(String json)
-
方法概要
所有方法 实例方法 具体方法 修饰符和类型 方法 说明 protected JsonReader.CharArray
array()
protected void
backChar(char ch)
回退最后读取的字符void
close()
boolean
hasNext()
判断对象是否存在下一个属性或者数组是否存在下一个元素boolean
isNextArray()
是否[开头的数组字符boolean
isNextObject()
是否{开头的对象字符protected char
nextChar()
读取下一个字符, 不跳过空白字符protected char
nextGoodChar(boolean allowComment)
跳过空白字符、单行或多行注释, 返回一个非空白字符int
position()
获取当前位置void
prepare(byte[] bytes)
设置Reader的内容,通常结合对象池使用int
readArrayB(Decodeable componentDecoder)
判断下一个非空白字符是否为[void
readArrayE()
读取数组的尾端void
readBlank()
判断下一个非空白字符是否:boolean
readBoolean()
读取一个boolean值byte
readByte()
读取一个byte值byte[]
readByteArray()
读取byte[]char
readChar()
读取一个char值double
readDouble()
读取一个double值DeMember
readField(DeMemberInfo memberInfo)
根据字段读取字段对应的DeMemberString
readFieldName()
float
readFloat()
读取一个float值int
readInt()
读取一个int值long
readLong()
读取一个long值int
readMapB(Decodeable keyDecoder, Decodeable valuedecoder)
判断下一个非空白字符是否为{void
readMapE()
读取数组的尾端String
readObjectB(Class clazz)
判断下一个非空白字符是否为{void
readObjectE(Class clazz)
读取对象的尾端short
readShort()
读取一个short值String
readStandardString()
读取无转义字符长度不超过255的字符串, 例如枚举值、字段名、类名字符串等String
readString()
读取字符串, 必须是"或者'包围的字符串值protected String
readString(boolean flag)
String
readStringValue()
Reader.ValueType
readType()
读取下个值的类型protected boolean
recycle()
void
seek(String key)
找到指定的属性值 例如: {id : 1, data : { name : 'a', items : [1,2,3]}} seek('data.items') 直接跳转到 [1,2,3];JsonReader
setText(char[] text)
JsonReader
setText(char[] text, int start, int len)
JsonReader
setText(String text)
void
skipValue()
跳过属性的值
-
-
-
构造器详细资料
-
JsonReader
public JsonReader()
-
JsonReader
public JsonReader(String json)
-
JsonReader
public JsonReader(char[] text)
-
JsonReader
public JsonReader(char[] text, int start, int len)
-
-
方法详细资料
-
setText
public final JsonReader setText(String text)
-
setText
public final JsonReader setText(char[] text)
-
setText
public final JsonReader setText(char[] text, int start, int len)
-
prepare
public void prepare(byte[] bytes)
从类复制的说明:Reader
设置Reader的内容,通常结合对象池使用
-
recycle
protected boolean recycle()
-
array
protected final JsonReader.CharArray array()
-
close
public void close()
-
seek
public final void seek(String key)
找到指定的属性值 例如: {id : 1, data : { name : 'a', items : [1,2,3]}} seek('data.items') 直接跳转到 [1,2,3];- 参数:
key
- 指定的属性名
-
nextChar
protected char nextChar()
读取下一个字符, 不跳过空白字符- 返回:
- 空白字符或有效字符
-
nextGoodChar
protected char nextGoodChar(boolean allowComment)
跳过空白字符、单行或多行注释, 返回一个非空白字符- 参数:
allowComment
- 是否容许含注释- 返回:
- 有效字符
-
backChar
protected void backChar(char ch)
回退最后读取的字符- 参数:
ch
- 后退的字符
-
isNextObject
public final boolean isNextObject()
是否{开头的对象字符- 返回:
- 是否对象字符
-
isNextArray
public final boolean isNextArray()
是否[开头的数组字符- 返回:
- 是否数组字符
-
readType
public final Reader.ValueType readType()
从类复制的说明:Reader
读取下个值的类型
-
readObjectB
public String readObjectB(Class clazz)
判断下一个非空白字符是否为{- 覆盖:
readObjectB
在类中Reader
- 参数:
clazz
- 类名- 返回:
- 返回 null 表示对象为null, 返回空字符串表示当前class与返回的class一致,返回非空字符串表示class是当前class的子类。
-
readObjectE
public final void readObjectE(Class clazz)
从类复制的说明:Reader
读取对象的尾端- 指定者:
readObjectE
在类中Reader
- 参数:
clazz
- 类名
-
readMapB
public final int readMapB(Decodeable keyDecoder, Decodeable valuedecoder)
判断下一个非空白字符是否为{
-
readArrayB
public int readArrayB(Decodeable componentDecoder)
判断下一个非空白字符是否为[- 指定者:
readArrayB
在类中Reader
- 参数:
componentDecoder
- Decodeable- 返回:
- SIGN_VARIABLE 或 SIGN_NULL
- 另请参阅:
Reader.SIGN_NULL
,Reader.SIGN_VARIABLE
-
readArrayE
public final void readArrayE()
从类复制的说明:Reader
读取数组的尾端- 指定者:
readArrayE
在类中Reader
-
readFieldName
public final String readFieldName()
-
readField
public DeMember readField(DeMemberInfo memberInfo)
从类复制的说明:Reader
根据字段读取字段对应的DeMember
-
readBoolean
public final boolean readBoolean()
从类复制的说明:Reader
读取一个boolean值- 指定者:
readBoolean
在类中Reader
- 返回:
- boolean值
-
readByteArray
public final byte[] readByteArray()
从类复制的说明:Reader
读取byte[]- 指定者:
readByteArray
在类中Reader
- 返回:
- byte[]
-
readShort
public final short readShort()
从类复制的说明:Reader
读取一个short值
-
readFloat
public final float readFloat()
从类复制的说明:Reader
读取一个float值
-
readDouble
public final double readDouble()
从类复制的说明:Reader
读取一个double值- 指定者:
readDouble
在类中Reader
- 返回:
- double值
-
readStandardString
public String readStandardString()
从类复制的说明:Reader
读取无转义字符长度不超过255的字符串, 例如枚举值、字段名、类名字符串等- 指定者:
readStandardString
在类中Reader
- 返回:
- String值
-
readString
public final String readString()
读取字符串, 必须是"或者'包围的字符串值- 指定者:
readString
在类中Reader
- 返回:
- String值
-
readStringValue
public final String readStringValue()
-
readString
protected String readString(boolean flag)
-
-