Jackson - JsonParser 类
介绍
JsonParser 是定义用于读取 Json 内容的公共 API 的基类。实例是使用 JsonFactory 实例的工厂方法创建的。
类声明
以下是com.fasterxml.jackson.core.JsonParser类的声明
public abstract class JsonParser extends Object implements Closeable, Versioned
嵌套类
序号 | 类和描述 |
---|---|
1 | static class JsonParser.Feature 枚举,定义了解析器的所有可切换特性。 |
2 | static class JsonParser.NumberType 数字可用的所有“原生”(最优)类型的枚举。 |
字段
protected int _features - 由指示哪些 JsonParser.Features 启用的位组成的位标志。
构造函数
序号 | 构造函数和描述 |
---|---|
1 | protected JsonParser() 默认构造函数 |
2 | protected JsonParser(int features) |
类方法
序号 | 方法和描述 |
---|---|
1 | protected JsonParseException _constructError(String msg) - 基于解析器的当前状态构造 JsonParseExceptions 的辅助方法。 |
2 | protected void _reportUnsupportedOperation() - 解析器实现不支持的操作的辅助调用方法。 |
3 | boolean canReadObjectId() - 内省方法,可以调用以查看底层数据格式是否原生支持某种对象 ID(许多不支持;例如,JSON 不支持)。 |
4 | boolean canReadTypeId() - 内省方法,可以调用以查看底层数据格式是否原生支持某种类型 ID(许多不支持;例如,JSON 不支持)。 |
5 | boolean canUseSchema(FormatSchema schema) - 可用于验证给定模式是否可与此解析器一起使用(使用 setSchema(com.fasterxml.jackson.core.FormatSchema))的方法。 |
6 | abstract void clearCurrentToken() - 用于“使用”当前标记的方法,通过有效地将其删除,以便 hasCurrentToken() 返回 false,并且 getCurrentToken() 返回 null。 |
7 | abstract void close() - 关闭解析器,以便无法进行进一步的迭代或数据访问;如果解析器拥有输入源,或者启用了特性 JsonParser.Feature.AUTO_CLOSE_SOURCE,它还会关闭底层输入源。 |
8 | JsonParser configure(JsonParser.Feature f, boolean state) - 用于启用或禁用指定特性的方法(查看 JsonParser.Feature 以获取特性的列表) |
9 | JsonParser disable(JsonParser.Feature f) - 用于禁用指定特性的方法(查看 JsonParser.Feature 以获取特性的列表) |
10 | JsonParser enable(JsonParser.Feature f) - 用于启用指定解析器特性的方法(查看 JsonParser.Feature 以获取特性的列表) |
11 | abstract BigInteger getBigIntegerValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_INT 并且由于其大小而无法用作 Java long 基本类型时,可以调用的数字访问器。 |
12 | byte[] getBinaryValue() - getBinaryValue(Base64Variant) 的便捷替代方法,默认为使用 Base64Variants.getDefaultVariant() 作为默认编码。 |
13 | abstract byte[] getBinaryValue(Base64Variant b64variant) - 可用于读取(并使用 - 调用后可能无法使用其他方法访问结果)当前文本 JSON 值中包含的 base64 编码的二进制数据的方法。 |
14 | boolean getBooleanValue() - 当当前标记为 JsonToken.VALUE_TRUE 或 JsonToken.VALUE_FALSE 时可以调用的便捷访问器。 |
15 | byte getByteValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_INT 并且可以表示为 Java byte 基本类型的值时,可以调用的数字访问器。 |
16 | abstract ObjectCodec getCodec() - 如果有,访问与此解析器关联的 ObjectCodec 的访问器。 |
17 | abstract JsonLocation getCurrentLocation() - 返回上次处理的字符位置的方法;通常用于错误报告目的。 |
18 | abstract String getCurrentName() - 可用于获取与当前标记关联的名称的方法:对于 JsonToken.FIELD_NAME,它将与 getText() 返回的内容相同;对于字段值,它将是前面的字段名称;对于其他(数组值、根级值)为 null。 |
19 | abstract JsonToken getCurrentToken() - 访问解析器当前指向的标记(如果有)的访问器;如果没有,则返回 null。 |
20 | abstract int getCurrentTokenId() - 与 getCurrentToken() 类似的方法,但返回 int 而不是 JsonToken(枚举值)。 |
21 | abstract BigDecimal getDecimalValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_FLOAT 或 JsonToken.VALUE_NUMBER_INT 时,可以调用的数字访问器。 |
22 | abstract double getDoubleValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_FLOAT 并且可以表示为 Java double 基本类型时,可以调用的数字访问器。 |
23 | abstract Object getEmbeddedObject() - 如果(且仅当)当前标记为 JsonToken.VALUE_EMBEDDED_OBJECT 时,可以调用的访问器。 |
24 | int getFeatureMask() - 获取所有标准 JsonParser.Features 状态的批量访问方法。 |
25 | abstract float getFloatValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_FLOAT 并且可以表示为 Java float 基本类型时,可以调用的数字访问器。 |
26 | Object getInputSource() - 可用于访问用于访问正在解析的输入的对象的方法;这通常是 InputStream 或 Reader,具体取决于解析器的构造方式。 |
27 | abstract int getIntValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_INT 并且可以表示为 Java int 基本类型的值时,可以调用的数字访问器。 |
28 | abstract JsonToken getLastClearedToken() - 可用于获取使用 clearCurrentToken() 清除的最后一个标记的方法。 |
29 | abstract long getLongValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_INT 并且可以表示为 Java long 基本类型时,可以调用的数字访问器。 |
30 | abstract JsonParser.NumberType getNumberType() - 如果当前标记的类型为 JsonToken.VALUE_NUMBER_INT 或 JsonToken.VALUE_NUMBER_FLOAT,则返回 JsonParser.NumberType 常量之一;否则返回 null。 |
31 | abstract Number getNumberValue() - 可用于所有类型数值的通用数字值访问器方法。 |
32 | Object getObjectId() - 可用于检查当前标记(刚刚读取的标记)是否具有关联的对象 ID,如果存在,则返回该 ID 的方法。 |
33 | abstract JsonStreamContext getParsingContext() - 可用于访问读取器所在的当前解析上下文的方法。 |
34 | FormatSchema getSchema() - 用于访问此解析器使用的模式(如果有)的方法。 |
35 | short getShortValue() - 当当前标记的类型为 JsonToken.VALUE_NUMBER_INT 并且可以表示为 Java short 基本类型的值时,可以调用的数字访问器。 |
36 | abstract String getText() - 用于访问当前标记的文本表示形式的方法;如果没有当前标记(在第一次调用 nextToken() 之前,或在遇到输入结束之后),则返回 null。 |
37 | abstract char[] getTextCharacters() - 与 getText() 类似的方法,但返回包含文本值的底层(不可修改的)字符数组,而不是构造一个 String 对象来包含此信息。 |
38 | abstract int getTextLength() - 与 getTextCharacters() 一起使用的访问器,用于了解返回缓冲区中存储的 String 的长度。 |
39 | abstract int getTextOffset() - 与 getTextCharacters() 一起使用的访问器,用于了解缓冲区中第一个文本内容字符的偏移量。 |
40 | abstract JsonLocation getTokenLocation() - 返回当前标记的起始位置的方法;即,从输入开始当前标记的第一个字符的位置。 |
41 | Object getTypeId() - 可用于检查当前标记(刚刚读取的标记)是否具有关联的类型 ID,如果存在,则返回该 ID 的方法。 |
42 | boolean getValueAsBoolean() - 将尝试将当前标记的值转换为布尔值的方法。 |
43 | boolean getValueAsBoolean(boolean defaultValue) - 将尝试将当前标记的值转换为布尔值的方法。 |
44 | double getValueAsDouble() - 将尝试将当前标记的值转换为 Java double 的方法。 |
45 | double getValueAsDouble(double defaultValue) - 将尝试将当前标记的值转换为 Java double 的方法。 |
46 | int getValueAsInt() - 将尝试将当前标记的值转换为 int 的方法。 |
47 | int getValueAsInt(int defaultValue) - 将尝试将当前标记的值转换为 int 的方法。 |
48 | long getValueAsLong() - 将尝试将当前标记的值转换为 long 的方法。 |
49 | long getValueAsLong(long defaultValue) - 将尝试将当前标记的值转换为 long 的方法。 |
50 | String getValueAsString() - 将尝试将当前标记的值转换为 String 的方法。 |
51 | abstract String getValueAsString(String defaultValue) - 将尝试将当前标记的值转换为 String 的方法。 |
52 | abstract boolean hasCurrentToken() - 用于检查解析器当前是否指向标记(以及该标记的数据是否可用)的方法。 |
53 | abstract boolean hasTextCharacters() - 可用于确定调用 getTextCharacters() 是否是访问解析器当前指向的事件的文本内容的最有效方法的方法。 |
54 | abstract boolean isClosed() - 可用于确定此解析器是否已关闭的方法。 |
55 | boolean isEnabled(JsonParser.Feature f) - 用于检查是否启用了指定的 JsonParser.Feature 的方法。 |
56 | boolean isExpectedStartArrayToken() - 当期望开始数组时,可用于验证当前标记是否指示开始数组(通常意味着当前标记为 JsonToken.START_ARRAY)的专用访问器。 |
57 | Boolean nextBooleanValue() - 获取下一个标记(就像调用 nextToken() 一样)的方法,如果它是 JsonToken.VALUE_TRUE 或 JsonToken.VALUE_FALSE,则返回匹配的 Boolean 值;否则返回 null。 |
58 | boolean nextFieldName(SerializableString str) - 获取下一个标记(就像调用 nextToken() 一样)并验证它是否为具有指定名称的 JsonToken.FIELD_NAME 并返回该比较结果的方法。 |
59 | int nextIntValue(int defaultValue) - 获取下一个标记(就像调用 nextToken() 一样)的方法,如果它是 JsonToken.VALUE_NUMBER_INT,则返回 32 位 int 值;否则返回指定的默认值 它在功能上等效于 |
60 | long nextLongValue(long defaultValue) - 获取下一个标记(就像调用 nextToken() 一样)的方法,如果它是 JsonToken.VALUE_NUMBER_INT,则返回 64 位 long 值;否则返回指定的默认值 它在功能上等效于 |
61 | String nextTextValue() - 获取下一个标记(就像调用 nextToken() 一样)的方法,如果它是 JsonToken.VALUE_STRING,则返回包含的 String 值;否则返回 null。 |
62 | abstract JsonToken nextToken() - 主迭代方法,它将推进流以确定下一个标记(如果有)的类型。 |
63 | abstract JsonToken nextValue() - 迭代方法,它将推进流以确定下一个标记的类型,该标记是值类型(包括 JSON 数组和对象开始/结束标记)。 |
64 | abstract void overrideCurrentName(String name) - 可用于更改被视为当前(字段)名称的方法。 |
65 | int readBinaryValue(Base64Variant b64variant, OutputStream out) - 与 readBinaryValue(OutputStream) 类似,但允许显式指定要使用的 base64 变体。 |
66 | int readBinaryValue(OutputStream out) - 可用作 getBigIntegerValue() 的替代方法,尤其是在值可能很大的情况下。 |
67 | <T> T readValueAs(Class<T> valueType) - 将 JSON 内容反序列化为非容器类型(它可以是数组类型,但是)的方法:通常是 bean、数组或包装器类型(如 Boolean)。 |
68 | <T> T readValueAs(TypeReference<?> valueTypeRef) - 将JSON内容反序列化为Java类型的方法,该类型的引用作为参数传递。 |
69 | <T extends TreeNode> T readValueAsTree() - 将JSON内容反序列化为等效的“树模型”的方法,由生成的模型的根TreeNode表示。 |
70 | <T> Iterator<T> readValuesAs(Class<T> valueType) - 用于从解析器流中读取对象序列的方法,所有对象都具有相同的指定值类型。 |
71 | <T> Iterator<T> readValuesAs(TypeReference<?> valueTypeRef) - 用于从解析器流中读取对象序列的方法,所有对象都具有相同的指定值类型。 |
72 | int releaseBuffered(OutputStream out) - 可以调用以回退任何已读取但未被解析器使用的内容的方法。 |
73 | int releaseBuffered(Writer w) - 可以调用以回退任何已读取但未被解析器使用的内容的方法。 |
74 | boolean requiresCustomCodec() - 可以调用以确定是否需要自定义ObjectCodec来绑定使用此工厂构造的JsonParser解析的数据(这通常也意味着JsonGenerator的序列化也是如此)的方法。 |
75 | abstract void setCodec(ObjectCodec c) - 设置器,允许定义与此解析器关联的ObjectCodec(如果存在)。 |
76 | JsonParser setFeatureMask(int mask) - 用于(重新)设置所有标准JsonParser.Features状态的批量设置方法。 |
77 | void setSchema(FormatSchema schema) - 调用以使此解析器使用指定的模式的方法。 |
78 | abstract JsonParser skipChildren() - 如果流指向JsonToken.START_OBJECT或JsonToken.START_ARRAY,则此方法将跳过解析器当前指向的数组或对象标记的所有子标记。 |
79 | abstract Version version() - 用于获取核心包版本的访问器,给定一个解析器实例。 |
继承的方法
此类继承自以下类的方法
java.lang.Object
广告