Jackson - JsonGenerator 类



介绍

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

类声明

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

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

嵌套类

序号类和描述
1静态类 JsonGenerator.Feature
定义生成器所有可切换功能的枚举。

字段

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

构造函数

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

类方法

序号方法和描述
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.fasterxml.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 void flush() - 用于将任何缓冲内容刷新到底层目标(输出流、写入器)并刷新目标本身的方法。
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) - 用于设置自定义漂亮打印程序的方法,通常用于添加缩进以提高人类可读性。
32JsonGenerator setRootValueSeparator(SerializableString sep) - 用于覆盖用于分隔根级 JSON 值的字符串的方法(默认为单个空格字符)
33void setSchema(FormatSchema schema) - 用于使此生成器使用指定模式的方法。
33abstract JsonGenerator useDefaultPrettyPrinter() - 用于使用默认漂亮打印程序 (DefaultPrettyPrinter) 启用漂亮打印的便捷方法。
34abstract Version version() - 用于查找提供此生成器实例的包的版本的访问器。
35void writeArrayFieldStart(String fieldName) - 用于输出字段条目(“成员”(将包含 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 编码形式指定的字段条目(“成员”)的便捷方法。
42abstract void writeBoolean(boolean state) - 用于输出文字 Json 布尔值('true' 和 'false' 字符串之一)的方法。
43void writeBooleanField(String fieldName, boolean value) - 用于输出具有布尔值的字段条目(“成员”)的便捷方法。
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 的字段条目(“成员”)的便捷方法。
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) - 用于输出具有指定数值的字段条目(“成员”)的便捷方法。
59void writeNumberField(String fieldName, double value) - 用于输出具有指定数值的字段条目(“成员”)的便捷方法。
60void writeNumberField(String fieldName, float value) - 用于输出具有指定数值的字段条目(“成员”)的便捷方法。
61void writeNumberField(String fieldName, int value) - 用于输出具有指定数值的字段条目(“成员”)的便捷方法。
62void writeNumberField(String fieldName, long value) - 用于输出具有指定数值的字段条目(“成员”)的便捷方法。
63abstract void writeObject(Object pojo) - 将给定的 Java 对象 (POJO) 作为 Json 写入的方法。
64void writeObjectField(String fieldName, Object pojo) - 用于输出字段条目(“成员”),其内容为特定 Java 对象的便捷方法。
65void writeObjectFieldStart(String fieldName) - 用于输出字段条目(“成员”(将包含 JSON 对象值))和 START_OBJECT 标记的便捷方法。
66void writeObjectId(Object id) - 可调用以输出所谓的原生对象 ID 的方法。
67void writeObjectRef(Object id) - 可调用以输出对原生对象 ID 的引用的方法。
68void writeOmittedField(String fieldName) - 用于指示此位置的属性被跳过的调用的方法。
69abstract void writeRaw(char c) - 此方法将强制生成器逐字复制输入文本,无需修改(包括不进行转义,即使上下文[数组、对象]否则需要这样也一样)。
70abstract void writeRaw(char[] text, int offset, int len) - 此方法将强制生成器逐字复制输入文本,无需修改(包括不进行转义,即使上下文[数组、对象]否则需要这样也一样)。
71void writeRaw(SerializableString raw) - 此方法将强制生成器逐字复制输入文本,无需修改(包括不进行转义,即使上下文[数组、对象]否则需要这样也一样)。
72abstract void writeRaw(String text) - 此方法将强制生成器逐字复制输入文本,无需修改(包括不进行转义,即使上下文[数组、对象]否则需要这样也一样)。
73abstract void writeRaw(String text, int offset, int len) - 此方法将强制生成器逐字复制输入文本,无需修改(包括不进行转义,即使上下文[数组、对象]否则需要这样也一样)。
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(SerializableString text) - 与 writeString(String) 方法类似,但它采用 SerializableString,这可能会使调用效率更高,因为生成器可能能够重用已引用和/或已编码的表示。
82abstract void writeString(String text) - 用于输出字符串值的方法。
83void writeStringField(String fieldName, String value) - 用于输出字段条目(“成员”),其值为字符串的便捷方法。
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

广告