public interface JsonGenerator extends FlushableSE, CloseableSE
Json
には、文字または出力ストリーム(Writer
SE および OutputStream
SE)のジェネレーターを作成するメソッドが含まれています。次の例は、JSON ジェネレーターを作成する方法を示しています。
JsonGenerator generator = Json.createGenerator(...);
クラス JsonGeneratorFactory
には、JsonGenerator
インスタンスを作成するためのメソッドも含まれています。JsonGeneratorFactory
は、次の例のように、複数のジェネレーターインスタンスを作成するときに使用する必要があります。
JsonGeneratorFactory factory = Json.createGeneratorFactory();
JsonGenerator generator1 = factory.createGenerator(...);
JsonGenerator generator2 = factory.createGenerator(...);
JSON オブジェクトは、writeStartObject()
メソッドを呼び出し、write
メソッドで名前と値のペアを追加することにより、JsonGenerator
を使用して作成できます。
次の例は、空の JSON オブジェクトを生成する方法を示しています。
JsonGenerator generator = ...;
generator.writeStartObject().writeEnd().close();
JSON 配列は、writeStartArray()
メソッドを呼び出し、write
メソッドで値を追加することにより、JsonGenerator
を使用して作成できます。次の例は、空の JSON 配列を生成する方法を示しています。
JsonGenerator generator = ...;
generator.writeStartArray().writeEnd().close();
その他の JSON 値(JSON オブジェクトまたは配列ではない)は、適切な write
メソッドを呼び出すことによって作成できます。
次の例は、JSON 文字列を生成する方法を示しています。
JsonGenerator generator = ...;
generator.write("message").close();
JsonGenerator
メソッドは、次の例のようにチェーンできます。
generator
.writeStartObject()
.write("firstName", "John")
.write("lastName", "Smith")
.write("age", 25)
.writeStartObject("address")
.write("streetAddress", "21 2nd Street")
.write("city", "New York")
.write("state", "NY")
.write("postalCode", "10021")
.writeEnd()
.writeStartArray("phoneNumber")
.writeStartObject()
.write("type", "home")
.write("number", "212 555-1234")
.writeEnd()
.writeStartObject()
.write("type", "fax")
.write("number", "646 555-4567")
.writeEnd()
.writeEnd()
.writeEnd();
generator.close();
上記のサンプルコードは、次の JSON(または同等のもの)を生成します。
{
"firstName": "John", "lastName": "Smith", "age": 25,
"address" : {
"streetAddress": "21 2nd Street",
"city": "New York",
"state": "NY",
"postalCode": "10021"
},
"phoneNumber": [
{"type": "home", "number": "212 555-1234"},
{"type": "fax", "number": "646 555-4567"}
]
}
生成された JSON テキストは、RFC 7159 で定義された文法に厳密に従う必要があります。Json
, JsonGeneratorFactory
修飾子と型 | フィールドと説明 |
---|---|
static StringSE | PRETTY_PRINTING きれいに JSON を生成する設定プロパティ。 |
修飾子と型 | メソッドと説明 |
---|---|
void | close() このジェネレーターを閉じ、それに関連付けられているすべてのリソースを解放します。 |
void | flush() 基になる出力ソースをフラッシュします。 |
JsonGenerator | write(BigDecimalSE value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 数値として書き込みます。 |
JsonGenerator | write(BigIntegerSE value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 数値として書き込みます。 |
JsonGenerator | write(boolean value) 現在の配列、フィールド、ルートコンテキスト内に JSON の true または false の値を書き込みます。 |
JsonGenerator | write(double value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 数値として書き込みます。 |
JsonGenerator | write(int value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 数値として書き込みます。 |
JsonGenerator | write(JsonValue value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 値として書き込みます。 |
JsonGenerator | write(long value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 数値として書き込みます。 |
JsonGenerator | write(StringSE value) 指定された値を現在の配列、フィールド、ルートコンテキスト内の JSON 文字列値として書き込みます。 |
JsonGenerator | write(StringSE name, BigDecimalSE value) 現在のオブジェクトコンテキストに JSON の名前と数値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, BigIntegerSE value) 現在のオブジェクトコンテキストに JSON の名前と数値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, boolean value) 現在のオブジェクトコンテキストに JSON 名 / ブール値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, double value) 現在のオブジェクトコンテキストに JSON の名前と数値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, int value) 現在のオブジェクトコンテキストに JSON の名前と数値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, JsonValue value) 現在のオブジェクトコンテキストに JSON の名前と値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, long value) 現在のオブジェクトコンテキストに JSON の名前と数値のペアを書き込みます。 |
JsonGenerator | write(StringSE name, StringSE value) 現在のオブジェクトコンテキストに JSON 名 / 文字列値のペアを書き込みます。 |
JsonGenerator | writeEnd() 現在のコンテキストの終わりを書き込みます。 |
JsonGenerator | writeKey(StringSE name) JSON 名をコロンで書き込みます。 |
JsonGenerator | writeNull() 現在の配列、フィールド、ルートコンテキスト内に JSON null 値を書き込みます。 |
JsonGenerator | writeNull(StringSE name) 現在のオブジェクトコンテキストに JSON 名 / null 値のペアを書き込みます。 |
JsonGenerator | writeStartArray() JSON 開始配列文字を書き込みます。 |
JsonGenerator | writeStartArray(StringSE name) 現在のオブジェクトコンテキストで JSON 名 / 開始配列文字のペアを書き込みます。 |
JsonGenerator | writeStartObject() JSON 開始オブジェクト文字を書き込みます。 |
JsonGenerator | writeStartObject(StringSE name) 現在のオブジェクトコンテキストに JSON 名 / 開始オブジェクトの文字のペアを書き込みます。 |
JsonGenerator writeStartObject()
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出された場合、またはコンテキストなしで複数回呼び出された場合。JsonGenerator writeStartObject(StringSE name)
name
- 書き込まれる JSON 名 / オブジェクトペア内の名前 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator writeKey(StringSE name)
name
- json フィールドの名前 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator writeStartArray()
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出された場合、またはコンテキストなしで複数回呼び出された場合 JsonGenerator writeStartArray(StringSE name)
name
- 書き込まれる JSON 名 / 配列ペア内の名前 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator write(StringSE name, JsonValue value)
name
- 現在の JSON オブジェクトに書き込まれる JSON の名前と値のペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と値のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator write(StringSE name, StringSE value)
name
- 現在の JSON オブジェクトに書き込まれる JSON 名 / 文字列ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON 名 / 文字列ペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator write(StringSE name, BigIntegerSE value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。name
- 現在の JSON オブジェクトに書き込まれる JSON の名前 / 番号ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と番号のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合。JsonGenerator write(StringSE name, BigDecimalSE value)
toString()
は、書き込み用のテキスト値として使用されます。name
- 現在の JSON オブジェクトに書き込まれる JSON の名前 / 番号ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と番号のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合。JsonGenerator write(StringSE name, int value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。name
- 現在の JSON オブジェクトに書き込まれる JSON の名前 / 番号ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と番号のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合。JsonGenerator write(StringSE name, long value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。name
- 現在の JSON オブジェクトに書き込まれる JSON の名前 / 番号ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と番号のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合。JsonGenerator write(StringSE name, double value)
BigDecimal.valueOf(double).toString()
は、書き込み用のテキスト値として使用されます。name
- 現在の JSON オブジェクトに書き込まれる JSON の名前 / 番号ペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前と番号のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)NumberFormatExceptionSE
- 値が非数(NaN)または無限大の場合。JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator write(StringSE name, boolean value)
true
値を書き込み、それ以外の場合、JSON false
値を書き込みます。name
- 現在の JSON オブジェクトに書き込まれる JSON 名 / ブールペアの名前 value
- 現在の JSON オブジェクトに書き込まれる JSON の名前とブール値のペアの値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合。JsonGenerator writeNull(StringSE name)
name
- 現在の JSON オブジェクトに書き込まれる JSON 名 / null ペアの名前 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがオブジェクトコンテキスト内で呼び出されない場合 JsonGenerator writeEnd()
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドがコンテキストなしで呼び出された場合。JsonGenerator write(JsonValue value)
value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonGenerator write(StringSE value)
value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonGenerator write(BigDecimalSE value)
toString()
は、書き込み用のテキスト値として使用されます。value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonNumber
JsonGenerator write(BigIntegerSE value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonNumber
JsonGenerator write(int value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonGenerator write(long value)
new BigDecimal(value).toString()
は、書き込み用のテキスト値として使用されます。value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonGenerator write(double value)
BigDecimal.valueOf(value).toString()
は、書き込み用のテキスト値として使用されます。value
- 現在の JSON 配列に書き込まれる値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。NumberFormatExceptionSE
- 値が非数(NaN)または無限大の場合。JsonGenerator write(boolean value)
true
値を書き込み、それ以外の場合は JSON false
値を書き込みます。value
- boolean
値 JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。JsonGenerator writeNull()
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- このメソッドが配列またはルートコンテキスト内で呼び出されない場合。void close()
AutoCloseableSE
の closeSE
CloseableSE
の closeSE
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)JsonGenerationException
- 不完全な JSON が生成された場合 void flush()
FlushableSE
の flushSE
JsonException
- I/O エラーが発生した場合 (IOException は JsonException の原因となる)Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.