JsonWriter Class
- java.
lang. Object - com.
azure. json. JsonWriter
- com.
Implements
public abstract class JsonWriter
implements Closeable
Writes a JSON value as a stream of tokens.
Instances of JsonWriter are created using an instance of JsonProvider or using the utility methods in JsonProviders.
Constructor Summary
| Constructor | Description |
|---|---|
| JsonWriter() |
Creates an instance of JsonWriter. |
Method Summary
Methods inherited from java.lang.Object
Constructor Details
JsonWriter
public JsonWriter()
Creates an instance of JsonWriter.
Method Details
close
public abstract void close()
Closes the JSON stream.
If the getWriteContext() isn't COMPLETED when this is called an IllegalStateException will be thrown.
During closing the implementation of JsonWriter must flush any un-flushed content.
Throws:
flush
public abstract JsonWriter flush()
Flushes any un-flushed content written to this writer.
It should be assumed that each write call won't flush any contents.
Returns:
Throws:
getWriteContext
public abstract JsonWriteContext getWriteContext()
Gets the current JsonWriteContext for the JSON object.
The writing context can help determine whether a write operation would be illegal.
The initial write context is ROOT.
Returns:
writeArray
public final JsonWriter <T>writeArray(Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc)
Writes a JSON array.
This API will begin by writing the start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element. If null elements should be excluded from serialization use writeArray(Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements) and pass true for skipNullElements.
If array is null NULL will be written.
This API is used instead of writeArrayField(String fieldName, Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
elementWriterFunc is null.
writeArray
public JsonWriter <T>writeArray(Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements)
Writes a JSON array.
This API will begin by writing the start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element if skipNullElements is false. If skipNullElements is true, null elements will be excluded from serialization.
If array is null NULL will be written.
This API is used instead of writeArrayField(String fieldName, Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
elementWriterFunc is null.
writeArray
public final JsonWriter <T>writeArray(T[] array, WriteValueCallback<JsonWriter,T> elementWriterFunc)
Writes a JSON array.
This API will begin by writing the start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element. If null elements should be excluded from serialization use #writeArray(Object[], WriteValueCallback, boolean) and pass true for skipNullElements.
If array is null NULL will be written.
This API is used instead of #writeArrayField(String, Object[], WriteValueCallback) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
elementWriterFunc is null.
writeArray
public JsonWriter <T>writeArray(T[] array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements)
Writes a JSON array.
This API will begin by writing the start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element if skipNullElements is false. If skipNullElements is true, null elements will be excluded from serialization.
If array is null NULL will be written.
This API is used instead of #writeArrayField(String, Object[], WriteValueCallback, boolean) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
elementWriterFunc is null.
writeArrayField
public final JsonWriter <T>writeArrayField(String fieldName, Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc)
Writes a JSON array field.
This API will begin by writing the field name and start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element. If null elements should be excluded from serialization use writeArrayField(String fieldName, Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements) and pass true for skipNullElements.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and writeArray(Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeArrayField
public JsonWriter <T>writeArrayField(String fieldName, Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements)
Writes a JSON array field.
This API will begin by writing the field name and start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element if skipNullElements is false. If skipNullElements is true, null elements will be excluded from serialization.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and writeArray(Iterable<T> array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeArrayField
public final JsonWriter <T>writeArrayField(String fieldName, T[] array, WriteValueCallback<JsonWriter,T> elementWriterFunc)
Writes a JSON array field.
This API will begin by writing the field name and start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element. If null elements should be excluded from serialization use #writeArrayField(String, Object[], WriteValueCallback, boolean) and pass true for skipNullElements.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and #writeArray(Object[], WriteValueCallback) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeArrayField
public JsonWriter <T>writeArrayField(String fieldName, T[] array, WriteValueCallback<JsonWriter,T> elementWriterFunc, boolean skipNullElements)
Writes a JSON array field.
This API will begin by writing the field name and start array ([) followed by all elements in the array using the elementWriterFunc and finishing by writing the end array (]).
If an element in the array is null, NULL will be written for that element if skipNullElements is false. If skipNullElements is true, null elements will be excluded from serialization.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and #writeArray(Object[], WriteValueCallback, boolean) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeBinary
public abstract JsonWriter writeBinary(byte[] value)
Writes a JSON binary value.
If value is null NULL will be written.
This API is used instead of writeBinaryField(String fieldName, byte[] value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
value fails to be written.
writeBinaryField
public final JsonWriter writeBinaryField(String fieldName, byte[] value)
Writes a JSON binary field.
Combines writeFieldName(String fieldName) and writeBinary(byte[] value) to simplify adding a key-value to a JSON object.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Parameters:
Returns:
Throws:
fieldName is null.
writeBoolean
public abstract JsonWriter writeBoolean(boolean value)
Writes a JSON boolean value (true or false).
This API is used instead of writeBooleanField(String fieldName, boolean value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the nullable Boolean use writeBoolean(Boolean value).
Parameters:
Returns:
Throws:
value fails to be written.
writeBoolean
public final JsonWriter writeBoolean(Boolean value)
Writes a nullable JSON boolean value (true, false, or null).
If value is null NULL will be written.
This API is used instead of writeBooleanField(String fieldName, Boolean value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the primitive boolean use writeBoolean(boolean value).
Parameters:
Returns:
Throws:
value fails to be written.
writeBooleanField
public final JsonWriter writeBooleanField(String fieldName, boolean value)
Writes a JSON boolean field.
Combines writeFieldName(String fieldName) and writeBoolean(boolean value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeBooleanField
public final JsonWriter writeBooleanField(String fieldName, Boolean value)
Writes a nullable JSON boolean field.
Combines writeFieldName(String fieldName) and writeBoolean(Boolean value) to simplify adding a key-value to a JSON object.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Parameters:
Returns:
Throws:
fieldName is null.
writeDouble
public abstract JsonWriter writeDouble(double value)
Writes a JSON double value.
This API is used instead of writeDoubleField(String fieldName, double value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the nullable Double use writeNumber(Number value).
Parameters:
Returns:
Throws:
value fails to be written.
writeDoubleField
public final JsonWriter writeDoubleField(String fieldName, double value)
Writes a JSON double field.
Combines writeFieldName(String fieldName) and writeDouble(double value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeEndArray
public abstract JsonWriter writeEndArray()
Writes a JSON end array (]).
Returns:
Throws:
writeEndObject
public abstract JsonWriter writeEndObject()
Writes a JSON end object (}).
If the current writing context isn't an object an IllegalStateException will be thrown.
Returns:
Throws:
writeFieldName
public abstract JsonWriter writeFieldName(String fieldName)
Writes a JSON field name ("fieldName":).
Parameters:
Returns:
Throws:
fieldName is null.
writeFloat
public abstract JsonWriter writeFloat(float value)
Writes a JSON float value.
This API is used instead of writeFloatField(String fieldName, float value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the nullable Float use writeNumber(Number value).
Parameters:
Returns:
Throws:
value fails to be written.
writeFloatField
public final JsonWriter writeFloatField(String fieldName, float value)
Writes a JSON float field.
Combines writeFieldName(String fieldName) and writeFloat(float value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeInt
public abstract JsonWriter writeInt(int value)
Writes a JSON int value.
This API is used instead of writeIntField(String fieldName, int value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the nullable Integer use writeNumber(Number value).
Parameters:
Returns:
Throws:
value fails to be written.
writeIntField
public final JsonWriter writeIntField(String fieldName, int value)
Writes a JSON int field.
Combines writeFieldName(String fieldName) and writeInt(int value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeJson
public final JsonWriter writeJson(JsonSerializable<?> value)
Writes a JsonSerializable<T> object.
If value is null NULL will be written.
This API is used instead of writeJsonField(String fieldName, JsonSerializable<?> value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
writeJsonField
public final JsonWriter writeJsonField(String fieldName, JsonSerializable<?> value)
Writes a JsonSerializable<T> field.
Combines writeFieldName(String fieldName) and writeJson(JsonSerializable<?> value) to simplify adding a key-value to a JSON object.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Parameters:
Returns:
Throws:
fieldName is null.
writeLong
public abstract JsonWriter writeLong(long value)
Writes a JSON long value.
This API is used instead of writeLongField(String fieldName, long value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
For the nullable Long use writeNumber(Number value).
Parameters:
Returns:
Throws:
value fails to be written.
writeLongField
public final JsonWriter writeLongField(String fieldName, long value)
Writes a JSON long field.
Combines writeFieldName(String fieldName) and writeLong(long value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeMap
public final JsonWriter <T>writeMap(Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc)
Writes a JSON map.
This API will begin by writing the start object ({) followed by key-value fields in the map using the valueWriterFunc and finishing by writing the end object (}).
If any value in the map is null and the valueWriterFunc skips null values, such as writeJson(JsonSerializable<?> value), NULL will be written for that value. Otherwise, handling of the null value is determined by valueWriterFunc.
If map is null NULL will be written.
This API is used instead of writeMapField(String fieldName, Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
valueWriterFunc is null or any key in the map is null.
writeMap
public JsonWriter <T>writeMap(Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc, boolean skipNullValues)
Writes a JSON map.
This API will begin by writing the start object ({) followed by key-value fields in the map using the valueWriterFunc and finishing by writing the end object (}).
If a value in the map is null and skipNullValues is true, that key-value pair will be skipped. Otherwise, handling of the null value will be based on valueWriterFunc. If valueWriterFunc skips null values, such as writeJson(JsonSerializable<?> value), NULL will be written for that value.
If map is null NULL will be written.
This API is used instead of writeMapField(String fieldName, Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc, boolean skipNullValues) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
valueWriterFunc is null or any key in the map is null.
writeMapField
public final JsonWriter <T>writeMapField(String fieldName, Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc)
Writes a JSON map field.
This API will begin by writing the field name and start object ({) followed by key-value fields in the map using the valueWriterFunc and finishing by writing the end object (}).
If any value in the map is null and the valueWriterFunc skips null values, such as writeJson(JsonSerializable<?> value), NULL will be written for that value. Otherwise, handling of the null value is determined by valueWriterFunc.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and writeMap(Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeMapField
public JsonWriter <T>writeMapField(String fieldName, Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc, boolean skipNullValues)
Writes a JSON map field.
This API will begin by writing the field name and start object ({) followed by key-value fields in the map using the valueWriterFunc and finishing by writing the end object (}).
If a value in the map is null and skipNullValues is true, that key-value pair will be skipped. Otherwise, handling of the null value will be based on valueWriterFunc. If valueWriterFunc skips null values, such as writeJson(JsonSerializable<?> value), NULL will be written for that value.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Combines writeFieldName(String fieldName) and writeMap(Map<String,T> map, WriteValueCallback<JsonWriter,T> valueWriterFunc, boolean skipNullValues) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeNull
public abstract JsonWriter writeNull()
Writes a JSON null.
This API is used instead of writeNullField(String fieldName) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Returns:
Throws:
writeNullableField
public final JsonWriter <T>writeNullableField(String fieldName, T nullable, WriteValueCallback<JsonWriter,T> writerFunc)
Writes a nullable JSON field.
When the value is null this effectively is the same as writeNullField(String fieldName). When the value isn't null this will write the JSON field name and call the writerFunc that is supplied with the non-null nullable value and this JsonWriter to perform the write operation.
Parameters:
Returns:
Throws:
writeNullField
public final JsonWriter writeNullField(String fieldName)
Writes a JSON null field ("fieldName":null).
Combines writeFieldName(String fieldName) and writeNull() to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
fieldName is null.
writeNumber
public final JsonWriter writeNumber(Number value)
Writes a nullable JSON number value.
If value is null NULL will be written.
This API is used instead of writeNumberField(String fieldName, Number value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
value fails to be written.
writeNumberField
public final JsonWriter writeNumberField(String fieldName, Number value)
Writes a nullable JSON number field.
Combines writeFieldName(String fieldName) and writeNumber(Number value) to simplify adding a key-value to a JSON object.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Parameters:
Returns:
Throws:
fieldName is null.
writeRawField
public final JsonWriter writeRawField(String fieldName, String value)
Writes the passed field literally without any additional handling.
Use this API when writing a String value that is already properly formatted JSON, such as a JSON string ("\"string\""), number ("42", "42.0"), boolean ("true", "false"), null ("null"), array ("[\"string\", \"array\"]"), or object ({"\"field\":\"value\""}).
Combines writeFieldName(String fieldName) and writeRawValue(String value) to simplify adding a key-value to a JSON object.
Parameters:
Returns:
Throws:
writeRawValue
public abstract JsonWriter writeRawValue(String value)
Writes the passed value literally without any additional handling.
Use this API when writing a String value that is already properly formatted JSON, such as a JSON string ("\"string\""), number ("42", "42.0"), boolean ("true", "false"), null ("null"), array ("[\"string\", \"array\"]"), or object ({"\"field\":\"value\""}).
This API is used instead of writeRawField(String fieldName, String value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
value is null.
writeStartArray
public abstract JsonWriter writeStartArray()
Writes a JSON start array ([).
Returns:
Throws:
writeStartArray
public final JsonWriter writeStartArray(String fieldName)
Writes a JSON start array ([) with a preceding field name.
This API is the equivalent of calling writeFieldName(String fieldName) and writeStartArray(), in that order.
Parameters:
Returns:
Throws:
fieldName is null.
writeStartObject
public abstract JsonWriter writeStartObject()
Writes a JSON start object ({).
Returns:
Throws:
writeStartObject
public final JsonWriter writeStartObject(String fieldName)
Writes a JSON start object ({) with a preceding field name.
This API is the equivalent of calling writeFieldName(String fieldName) and writeStartObject(), in that order.
Parameters:
Returns:
Throws:
fieldName is null.
writeString
public abstract JsonWriter writeString(String value)
Writes a JSON String value.
If value is null NULL will be written.
This API is used instead of writeStringField(String fieldName, String value) when the value needs to be written to the root of the JSON value, as an element in an array, or after a call to writeFieldName(String fieldName).
Parameters:
Returns:
Throws:
value fails to be written.
writeStringField
public final JsonWriter writeStringField(String fieldName, String value)
Writes a JSON String field.
Combines writeFieldName(String fieldName) and writeString(String value) to simplify adding a key-value to a JSON object.
The field is only written when value isn't null, if a null field needs to be written use #writeNullableField(String, Object, WriteValueCallback).
Parameters:
Returns:
Throws:
fieldName is null.
writeUntyped
public JsonWriter writeUntyped(Object value)
Writes the unknown type value.
The following is how each value is handled (in this order):
- null -> writeNull()
short-> writeInt(int value)int-> writeInt(int value)long-> writeLong(long value)float-> writeFloat(float value)double-> writeDouble(double value)boolean-> writeBoolean(boolean value)- CharSequence -> writeString(String value)
char-> writeString(String value)- JsonSerializable<T> -> writeJson(JsonSerializable<?> value)
Object[]-> writeUntyped(Object value) for each element- Iterable -> writeUntyped(Object value) for each element
- Map -> writeUntyped(Object value) for each element where the key to
toString'd - Object -> empty JSON object (
{}) - All other values use the
toStringvalue with writeString(String value)
Parameters:
Returns:
Throws:
value fails to be written.
writeUntypedField
public JsonWriter writeUntypedField(String fieldName, Object value)
Writes the unknown type value field.
The following is how each value is handled (in this order):
- null -> writeNull()
short-> writeInt(int value)int-> writeInt(int value)long-> writeLong(long value)float-> writeFloat(float value)double-> writeDouble(double value)boolean-> writeBoolean(boolean value)- CharSequence -> writeString(String value)
char-> writeString(String value)- JsonSerializable<T> -> writeJson(JsonSerializable<?> value)
Object[]-> writeUntyped(Object value) for each element- Iterable -> writeUntyped(Object value) for each element
- Map -> writeUntyped(Object value) for each element where the key to
toString'd - Object -> empty JSON object (
{}) - All other values use the
toStringvalue with writeString(String value)
Parameters:
Returns:
Throws:
fieldName is null.