Jackson - JsonParser 类

简介

JsonParser是定义读取Json内容的公共API的基类。 实例是使用 JsonFactory 实例的工厂方法创建的。

类声明

以下是 com.fasterxml.jackson.core.JsonParser 类的声明:

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

嵌套类

S.N.类和描述
1static class JsonParser.Feature
定义解析器所有可切换功能的枚举。
2static class JsonParser.NumberType
枚举可用于数字的可能"本机"(最佳)类型。

字段

  • protected int _features - 位标志由指示启用哪些 JsonParser.Features 的位组成。

构造函数

S.N.构造函数 & 说明
1protected JsonParser()
默认构造函数
2protected JsonParser(int features)

类方法

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

继承的方法

该类继承了以下类的方法:

  • java.lang.Object