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

廣告
© . All rights reserved.