Jackson - JsonGenerator 类

简介

JsonGenerator 是定义用于编写 JSON 内容的公共 API 的类的基类。 实例是使用 JsonFactory 实例的工厂方法创建的。

类声明

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

public abstract class JsonGenerator
   extends Object
      implements Closeable, Flushable, Versioned

Nested Classes

S.N.类 & 描述
1static class JsonGenerator.Feature
定义生成器的所有可切换特性的枚举。

字段

  • protected PrettyPrinter _cfgPrettyPrinter - 在输出期间处理打印(通常是额外的空白以使结果更易于阅读)的对象。

构造函数

S.N.构造函数和描述
1protected JsonGenerator()
默认构造函数

类方法

< /tr>
S.N.方法和描述
1protected void _reportError(String msg) - 用于构造和抛出带有给定基本消息的 JsonGenerationException 的辅助方法。
2protected void _reportUnsupportedOperation()
3protected void _throwInternal()
4protected void _writeSimpleObject(Object value)- 尝试为给定的非类型化对象调用适当的写入方法的帮助器方法。
5boolean canOmitFields() - 调用内省方法来检查是否可以省略对象字段的写入。
6boolean canUseSchema(FormatSchema schema) - 可用于验证给定架构是否可以与此生成器一起使用的方法(使用 setSchema(com. fastxml.jackson.core.FormatSchema))。
7boolean canWriteBinaryNatively() - 可以调用内省方法来查看底层数据格式是否支持"本机"二进制数据; 即无需编码即可高效输出二进制内容。
8boolean canWriteObjectId() - 可以调用内省方法来查看底层数据格式是否原生支持某种对象 ID(许多不支持) ; 例如,JSON 就没有)。
9boolean canWriteTypeId() - 可以调用内省方法来查看底层数据格式是否原生支持某种类型 ID(许多不支持) ; 例如,JSON 就没有)。
10abstract void close() - 调用方法来关闭此生成器,以便不再写入任何内容。
11JsonGenerator configure(JsonGenerator.Feature f, boolean state) - 启用或禁用指定功能的方法:检查 JsonGenerator.Feature 以获取可用功能列表。
12void copyCurrentEvent(JsonParser jp) -用于复制给定解析器实例指向的当前事件内容的方法。
13void copyCurrentStructure(JsonParser jp) - 用于复制当前事件及其包含给定解析器实例指向的后续事件的内容的方法。
14abstract JsonGenerator disable(JsonGenerator.Feature f) -禁用指定功能的方法(查看 JsonGenerator.Feature 以获取功能列表)
15abstract JsonGenerator enable(JsonGenerator.Feature f) -启用指定解析器功能的方法:检查 JsonGenerator.Feature 以获取可用功能列表。
16abstract voidlush() - 调用方法将任何缓冲内容刷新到底层目标(输出流、编写器),并刷新目标本身。
17CharacterEscapes getCharacterEscapes() - 用于访问其创建的 JsonGenerator 的自定义转义工厂的方法。
18abstract ObjectCodec getCodec() -访问用于将 Java 对象写入 Json 内容的对象的方法(使用方法 writeObject(java.lang.Object))。
19abstract int getFeatureMask() - 用于获取所有标准 JsonGenerator.Features 状态的批量访问方法。
20int getHighestEscapedChar() - 用于测试为此生成器配置的最高未转义字符的访问器方法。
21abstract JsonStreamContext getOutputContext()
22Object getOutputTarget()- 可用于访问用作生成输出目标的对象的方法; 这通常是 OutputStream 或 Writer,具体取决于生成器的构造。
23PrettyPrinter getPrettyPrinter() - 用于检查此生成器是否已配置 PrettyPrinter 的访问器; 如果有则返回,如果没有配置则返回 null。
24FormatSchema getSchema() - 用于访问此解析器使用的架构的方法(如果有)。
25abstract boolean isClosed() - 可以调用该方法来确定此生成器是否关闭。
26abstract boolean isEnabled(JsonGenerator.Feature f) - 检查给定功能是否启用的方法。
27JsonGenerator setCharacterEscapes(CharacterEscapes esc)-定义自定义转义工厂用于其创建的 JsonGenerator 的方法。
28abstract JsonGenerator setCodec(ObjectCodec oc) - 可以调用该方法来设置或重置用于将 Java 对象写入 JsonContent 的对象 (使用方法 writeObject(java.lang.Object))。
29abstract JsonGenerator setFeatureMask(int mask)-用于(重新)设置所有标准 JsonGenerator.Features 状态的批量设置方法
30JsonGenerator setHighestNonEscapedChar(int charCode) - 可以调用该方法来请求生成器转义指定代码点以上的所有字符代码(如果为正值); 或者,不转义除数据格式必须转义的字符(如果 -1)之外的任何字符。
31JsonGenerator setPrettyPrinter(PrettyPrinter pp) - 设置自定义pretty-printing机的方法,通常用于添加缩进以提高人类可读性。
32JsonGenerator setRootValueSeparator(SerializedString sep) - 允许覆盖用于分隔根级 JSON 值的 String 的方法(默认为单个空格字符)
33void setSchema(FormatSchema schema) - 调用以使此生成器使用指定架构的方法。
33abstract JsonGenerator useDefaultPrettyPrinter() - 使用默认打印机 (DefaultPrettyPrinter) 启用pretty-printing的便捷方法。
34abstract Version version() - 用于查找提供此生成器实例的包的版本的访问器。
35void writeArrayFieldStart(String fieldName) - 输出字段条目("member")(将包含 JSON 数组值)的便捷方法, 和 START_ARRAY 标记。
36abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len)- 将给定的二进制数据块输出为 base64 编码的方法,作为完整的字符串值(用双引号括起来)。
37abstract int writeBinary(Base64Variant b64variant, InputStream data, int dataLength) - 方法类似于 writeBinary(Base64Variant,byte[],int,int),但输入是通过流提供的,允许增量写入,而无需将整个输入保留在内存中。
38void writeBinary(byte[] data)- 与 writeBinary(Base64Variant,byte[],int,int) 类似,但假定默认使用 Jackson 默认 Base64 变体(即 Base64Variants.MIME_NO_LINEFEEDS)。
39void writeBinary(byte[] data, int offset, int len) - 与 writeBinary(Base64Variant,byte[],int,int) 类似,但默认使用 Jackson 默认 Base64 变体(即 Base64Variants.MIME_NO_LINEFEEDS)。
40int writeBinary(InputStream data, int dataLength) - 与 writeBinary(Base64Variant,InputStream,int) 类似,但假定默认使用 Jackson 默认值 Base64 变体(即 Base64Variants.MIME_NO_LINEFEEDS)。
41void writeBinaryField(String fieldName, byte[] data) - 用于输出包含 Base64 编码形式的指定数据的字段条目("member")的便捷方法。
42abstract void writeBoolean(boolean state) - 输出文字 Json 布尔值(字符串"true"和"false"之一)的方法。
43void writeBooleanField(String fieldName, boolean value) - 输出具有布尔值的字段条目("member")的便捷方法。
44abstract void writeEndArray() - 用于编写 JSON 数组值的结束标记的方法(character"]";如果启用了pretty-printing,则加上可能的空白装饰)。
45abstract void writeEndObject() - 用于编写 JSON 对象值的结束标记的方法(字符"}";如果启用了pretty-printing,则加上可能的空白装饰)。
46abstract void writeFieldName(SerializedString name) - 与 writeFieldName(String) 类似的方法,主要区别在于它可能在某些处理时表现更好(例如引用某些字符,或者在生成器支持的情况下编码为外部编码)只需执行一次即可重复用于以后的调用。
47abstract void writeFieldName(String name) - 写入字段名称的方法(用双引号括起来的 JSON 字符串:语法上与 JSON 字符串值相同 ),如果启用了pretty-printing,则可能由空白装饰。
48abstract void writeNull() - 输出Json空值的方法。
49void writeNullField(String fieldName) - 用于输出 JSON 文字值为 null 的字段条目("member")的便捷方法。
50abstract void writeNumber(BigDecimal dec) - 输出方法表示Json数值。
51abstract void writeNumber(BigInteger v) - 将给定值输出为 Json 数字的方法。
52abstract void writeNumber(double d) - 输出方法,表示Json数值。
53abstract void writeNumber(float f) - 输出表示Json数值的方法。
54abstract void writeNumber(int v) - 将给定值输出为 Json 数字的方法。
55abstract void writeNumber(long v) - 将给定值输出为 Json 数字的方法。
56void writeNumber(short v) - 将给定值输出为 Json 数字的方法。
57abstract void writeNumber(String encodedValue) - 编写可用于无法(easily?)转换为"标准"Java 数字类型的自定义数字类型的方法。
58void writeNumberField(String fieldName, BigDecimal value) - 用于输出具有指定数值的字段条目("member")的便捷方法。
59void writeNumberField(String fieldName, double value) - 输出具有指定数值的字段条目("member")的便捷方法。
60void writeNumberField(String fieldName, float value) - 输出具有指定数值的字段条目("member")的便捷方法。
61void writeNumberField(String fieldName, int value) - 输出具有指定数值的字段条目("member")的便捷方法。
62void writeNumberField(String fieldName, long value) - 输出具有指定数值的字段条目("member")的便捷方法。
63abstract void writeObject(Object pojo) - 将给定 Java 对象 (POJO) 写入 Json 的方法。
64void writeObjectField(String fieldName, Object pojo) - 用于输出以特定 Java 对象的内容作为其值的字段条目("member")的便捷方法。
65void writeObjectFieldStart(String fieldName) - 用于输出字段条目("member")(将包含 JSON 对象值)和 START_OBJECT 标记的便捷方法。
66void writeObjectId(Object id) - 可以调用该方法来输出所谓的本机对象 Id。
67void writeObjectRef(Object id) - 可以调用该方法来输出对本机对象 ID 的引用。
68void writeOmissField(String fieldName) - 调用该方法以指示跳过此位置的属性。
69abstract void writeRaw(char c) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使上下文 [array, object] 需要这样)。
70abstract void writeRaw(char[] text, int offset, int len) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使上下文 [array, object] 需要这样)。
71void writeRaw(SerializableString raw) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使上下文 [array, object] 需要这样)。
72abstract void writeRaw(String text) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使上下文 [array, object] 需要这样)。
73abstract void writeRaw(String text, int offset, int len) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使上下文 [array, object] 需要这样)。
74abstract void writeRawUTF8String(byte[] text, int offset, int length) - 方法与 writeString(String) 类似,但将 UTF-8 编码的字符串作为输入,并按原样输出,无需额外转义(其类型取决于数据格式;JSON 的反斜杠)。
75abstract void writeRawValue(char[] text, int offset, int len)
76abstract void writeRawValue(String text)- 强制生成器逐字复制输入文本而不进行任何修改的方法,但假设它必须构成单个合法的 JSON 值(数字、字符串、布尔值、null、数组或列表)。
77abstract void writeRawValue(String text, int offset, int len)
78abstract void writeStartArray()- 用于编写 JSON 数组值的起始标记的方法(字符"[";如果启用了漂亮打印,则加上可能的空白装饰)。
79abstract void writeStartObject() - 用于写入 JSON 对象值的起始标记的方法(字符"{";如果漂亮的话,加上可能的空白装饰) - 打印已启用)。
80abstract void writeString(char[] text, int offset, int len) - 输出字符串值的方法。
81abstract void writeString(SerializedString text) - 方法类似于 writeString(String),但它采用 SerializedString,这可以使调用更有效,因为生成器可以重用引用和/或编码的表示形式。
82abstract void writeString(String text) - 输出字符串值的方法。
83void writeStringField(字符串字段名称,字符串值) - 用于输出具有字符串值的字段条目("member")的便捷方法。
84abstract void writeTree(TreeNode rootNode) - 使用此生成器编写给定 JSON 树(表示为给定 JsonNode 为根的树)的方法 。
85void writeTypeId(Object id) - 可以调用该方法来输出所谓的本机类型 Id。
86abstract void writeUTF8String(byte[] text, int offset, int length) - 与 writeString(String) 类似的方法,但它采用 UTF-8 编码的字符串作为输入,该字符串尚未使用任何转义方案数据格式所需的转义 (对于 JSON,它是控制字符和双引号的反斜杠转义;对于其他格式则有其他内容)。

继承的方法

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

  • java.lang.Object