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

JsonGenerator

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

介绍 (Introduction)

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

类声明

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

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

嵌套类 (Nested Classes)

SN类和描述
1static class JsonGenerator.Feature枚举,定义生成器的所有可切换功能。

字段 (Fields)

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

构造函数 (Constructors)

SN构造函数和描述
1protected JsonGenerator()默认构造函数

Class Methods

SN方法和描述
1protected void _reportError(String msg) - 用于构造和抛出给定基本消息的JsonGenerationException的Helper方法。
2protected void _reportUnsupportedOperation()
3protected void _throwInternal()
4protected void _writeSimpleObject(Object value) - 尝试为给定的无类型Object调用适当的write方法的Helper方法。
5boolean canOmitFields() - 调用的Introspection方法,检查是否可以省略Object字段的写入。
6boolean canUseSchema(FormatSchema schema) - 可用于验证给定模式是否可与此生成器一起使用的方法(使用setSchema(com.fasterxml.jackson.core.FormatSchema))。
7boolean canWriteBinaryNatively() - 可以调用的内省方法,以查看底层数据格式是否支持“本机”二进制数据; 也就是说,没有编码的二进制内容的有效输出。
8boolean canWriteObjectId() - 可以被调用以查看底层数据格式是否本身支持某种Object Ids的Introspection方法(很多都没有;例如,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) - Method for disabling specified features (check JsonGenerator.Feature for list of features)
15abstract JsonGenerator enable(JsonGenerator.Feature f) - 启用指定解析器功能的方法:检查JsonGenerator.Feature以获取可用功能列表。
16abstract void flush() - 调用将任何缓冲内容刷新到底层目标(输出流,编写器)以及刷新目标本身的方法。
17CharacterEscapes getCharacterEscapes() - 访问自定义转义的工厂方法,用于它创建的JsonGenerators。
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() - 访问此解析器使用的Schema的方法FormatSchema getSchema()如果有)。
25abstract boolean isClosed() - 可以调用以确定此生成器是否已关闭的方法。
26abstract boolean isEnabled(JsonGenerator.Feature f) - 检查是否启用给定功能的方法。
27JsonGenerator setCharacterEscapes(CharacterEscapes esc) - 用于为其创建的JsonGenerators定义工厂使用的自定义转义的方法。
28abstract JsonGenerator setCodec(ObjectCodec oc) - 可以调用以设置或重置用于将Java对象编写为JsonContent的对象的方法(使用方法writeObject(java.lang.Object))。
29abstract JsonGenerator setFeatureMask(int mask) -Bulk set方法,用于(重新)设置所有标准JsonGenerator.Features的状态
30JsonGenerator setHighestNonEscapedChar(int charCode) - Method that can be called to request that generator escapes all character codes above specified code point (if positive value); or, to not escape any characters except for ones that must be escaped for the data format (if -1).
31JsonGenerator setPrettyPrinter(PrettyPrinter pp) - 设置自定义漂亮打印机的方法,通常用于添加缩进以提高人类可读性。
32JsonGenerator setRootValueSeparator(SerializableString sep) - 允许覆盖用于分隔根级JSON值的String的方法(默认为单个空格字符)
33void setSchema(FormatSchema schema) - 调用以使此生成器使用指定模式的方法。
33abstract JsonGenerator useDefaultPrettyPrinter() - 使用默认漂亮打印机(DefaultPrettyPrinter)启用漂亮打印的便捷方法。
34abstract Version version() - 用于查找提供此生成器实例的bundle的版本的访问器。
35void writeArrayFieldStart(String fieldName) - 输出字段条目(“成员”)(包含JSON数组值)和START_ARRAY标记的便捷方法。
36abstract void writeBinary(Base64Variant b64variant, byte[] data, int offset, int len) - 将给定的二进制数据块作为base64编码输出的方法,作为完整的String值(由双引号括起)。
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) - 输出具有void writeBooleanField(String fieldName, boolean value)的字段条目(“member”)的便捷方法。
44abstract void writeEndArray() - 用于写入JSON数组值的关闭标记的方法(字符']';如果启用了漂亮打印,则加上可能的空白区域。
45abstract void writeEndObject() - 用于写入JSON对象值的结束标记的方法(字符'}';如果启用了漂亮打印,则加上可能的空白区域。)
46abstract void writeFieldName(SerializableString name) - 类似于writeFieldName(String)的方法,主要区别在于它可以执行得更好,因为某些处理(如引用某些字符,或者如果生成器支持,则编码为外部编码)可以完成一次,并重复用于以后的电话。
47abstract void writeFieldName(String name) - 用于编写字段名称的方法(由双引号括起的JSON字符串:在语法上与JSON字符串值相同),如果启用了漂亮打印,可能由空格修饰。
48abstract void writeNull() - 输出文字Json null值的方法。
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) - 可用于无法(轻松?)转换为“标准”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对象(PO​​JO)编写为Json的方法。
64void writeObjectField(String fieldName, Object pojo) - 用于输出具有特定Java对象的内容作为其值的字段条目(“member”)的便捷方法。
65void writeObjectFieldStart(String fieldName) - 输出字段条目(“成员”)(包含JSON对象值)和START_OBJECT标记的便捷方法。
66void writeObjectId(Object id) - 可以调用以输出所谓的本机Object Id的方法。
67void writeObjectRef(Object id) - 可以调用以输出对本机Object ID的引用的方法。
68void writeOmittedField(String fieldName) Method called to indicate that a property in this position was skipped.
69abstract void writeRaw(char c) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括没有进行转义,也不添加分隔符,即使context [array,object]需要这样做)。
70abstract void writeRaw(char[] text, int offset, int len) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括没有进行转义并且即使上下文[array,object]也没有添加分隔符)否则需要这样)。
71void writeRaw(SerializableString raw) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括没有进行转义,也不添加分隔符,即使context [array,object]需要这样做)。
72abstract void writeRaw(String text) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括没有进行转义,也不添加分隔符,即使context [array,object]需要这样做)。
73abstract void writeRaw(String text, int offset, int len) - 强制生成器逐字复制输入文本而不进行任何修改的方法(包括不进行转义并且不添加分隔符,即使context [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值(数字,字符串,布尔值,空值,数组或列表)。
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) - 输出String值的方法。
81abstract void writeString(SerializableString text) - 类似于writeString(String)的方法,但是采用SerializableString,这可以使得调用生成器可能更有效,可以重用引用和/或编码的表示。
82abstract void writeString(String text) - 输出String值的方法。
83void writeStringField(String fieldName, String value) - 输出具有void writeStringField(String fieldName, String value)的字段条目(“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