当前位置: 首页 > 文档资料 > Jackson 中文教程 >

JsonParser

优质
小牛编辑
129浏览
2023-12-01

介绍 (Introduction)

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

类声明

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

public abstract class JsonParser
   extends Object
      implements Closeable, Versioned

嵌套类 (Nested Classes)

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

字段 (Fields)

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

构造函数 (Constructors)

SN构造函数和描述
1protected JsonParser()默认构造函数
2protected JsonParser(int features)

Class Methods

SN方法和描述
1protected JsonParseException _constructError(String msg) - 基于解析器当前状态构造JsonParseExceptions的Helper方法。
2protected void _reportUnsupportedOperation() - 调用解析器实现不支持的操作的Helper方法。
3boolean canReadObjectId() - 可以调用的Introspection方法,以查看底层数据格式是否本身支持某种Object 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长原始类型(Primitive)。
12byte[] getBinaryValue() - 替代getBinaryValue(Base64Variant)的便捷方法,默认使用Base64Variants.getDefaultVariant()作为默认编码。
13abstract byte[] getBinaryValue(Base64Variant b64variant) - 可用于读取(和使用 - 调用后可能无法使用其他方法访问结果)的方法,包括在当前文本JSON值中的base64编码二进制数据。
14boolean getBooleanValue() - 当前令牌为JsonToken.VALUE_TRUE或JsonToken.VALUE_FALSE时可以调用的便捷访问器。
15byte getByteValue() - 当前标记的类型为JsonToken.VALUE_NUMBER_INT时可以调用的数字访问器,它可以表示为Java字节原始类型(Primitive)的值。
16abstract ObjectCodec getCodec() - 与此解析器关联的abstract ObjectCodec getCodec()如果有)。
17abstract JsonLocation getCurrentLocation() - 返回最后处理字符位置的方法; 通常用于错误报告目的。
18abstract String getCurrentName() - 可以调用以获取与当前标记关联的名称的方法:对于JsonToken.FIELD_NAME,它将与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双原始类型(Primitive)。
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() - 当前标记的类型为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() - 可用于访问当前解析上下文读取器的方法。
34FormatSchema getSchema() - 访问此解析器使用的Schema的方法FormatSchema getSchema()如果有)。
35short getShortValue() - 当前标记的类型为JsonToken.VALUE_NUMBER_INT时可以调用的数字访问器,它可以表示为Java短原始类型(Primitive)的值。
36abstract String getText() - 访问当前令牌的文本表示的方法; 如果没有当前令牌(在第一次调用nextToken()之前,或在遇到输入结束之后),则返回null。
37abstract char[] getTextCharacters() - 类似于getText()的方法,但它将返回包含文本值的底层(不可修改)字符数组,而不是构造一个包含此信息的String对象。
38abstract int getTextLength() - 与getTextCharacters()一起使用的访问器,用于知道返回缓冲区中存储的String的长度。
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() - 将尝试将当前令牌的值转换为long的方法。
49long getValueAsLong(long defaultValue) - 将尝试将当前令牌的值转换为long的方法。
50String getValueAsString() - 尝试将当前标记的值转换为String的方法。
51abstract String getValueAsString(String defaultValue) - 尝试将当前标记的值转换为String的方法。
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) - 获取下一个标记的方法(如调用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,数组或包装类型(如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) - 从解析器流中读取对象序列的方法,所有这些都具有相同的指定值类型。
72int releaseBuffered(OutputStream out) - 可以调用以回退已被读取但未被解析器使用的任何内容的方法。
73int releaseBuffered(Writer w) - Method that can be called to push back any content that has been read but not consumed by the parser.
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() - Method that will skip all child tokens of an array or object token that the parser currently points to, iff stream points to JsonToken.START_OBJECT or JsonToken.START_ARRAY.
79abstract Version version() - 在给定解析器实例的情况下获取核心包版本的访问器。

方法继承

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

  • java.lang.Object