Package io.avaje.jsonb
Interface JsonWriter
- All Superinterfaces:
AutoCloseable,Closeable,Flushable
- All Known Subinterfaces:
BufferedJsonWriter,BytesJsonWriter
- All Known Implementing Classes:
DelegateJsonWriter
Writes json content.
-
Method Summary
Modifier and TypeMethodDescriptionvoidallNames(PropertyNames names) Set the property names that will be used for all json generation.voidWrite array begin.voidWrite object begin.voidclose()Close the writer.voidWrite empty array.voidendArray()Write array end.voidWrite object end.voidflush()Flush the writer.voidWrite a value that could be any value.voidname(int position) Set the next property name to write by position.voidSet the next property name to write.voidnames(PropertyNames names) Set the current property names.voidWrite null value.path()Return the current path.voidpretty(boolean pretty) Set tp true to output json in pretty format.voidWrite raw JSON content.booleanReturn true if empty collections should be serialised.voidserializeEmpty(boolean serializeEmpty) Set to serialise empty collections or not.booleanReturn true if null values should be serialised.voidserializeNulls(boolean serializeNulls) Set to serialise null values or not.<T> TUnwrap the underlying generator being used.voidvalue(boolean value) Write a boolean value.voidvalue(byte[] value) Write binary content as base64.voidvalue(double value) Write a double value.voidvalue(int value) Write an int value.voidvalue(long value) Write a long value.voidWrite a Boolean value.voidWrite a Double value.voidWrite an Integer value.voidWrite a Long value.voidWrite a string value.voidvalue(BigDecimal value) Write a BigDecimal value.voidvalue(BigInteger value) Write a BigInteger value.voidWrite raw content.
-
Method Details
-
unwrap
Unwrap the underlying generator being used.We do this to get access to the underlying generator. For the case when using jackson-core we get access to Jackson JsonGenerator and can then do Jackson specific things like set custom escaping.
try (JsonWriter writer = jsonb.writer(new StringWriter())) { // get access to the underlying Jackson JsonGenerator var generator = writer.unwrap(JsonGenerator.class) // do Jackson specific things like ... generator.setCharacterEscapes(new HTMLCharacterEscapes()); jsonb.toJson(myBean, writer); } -
serializeNulls
Set to serialise null values or not. -
serializeNulls
boolean serializeNulls()Return true if null values should be serialised. -
serializeEmpty
Set to serialise empty collections or not. -
serializeEmpty
boolean serializeEmpty()Return true if empty collections should be serialised. -
pretty
Set tp true to output json in pretty format. -
path
Return the current path. -
allNames
Set the property names that will be used for all json generation.These names should be used for all json generation for this generator and set once rather than set per object via
names(PropertyNames).This is used by view json generation where all the names are known at the point when the view is created (a sort of flattened nested tree).
-
names
Set the current property names.This is expected to be called per object after each call to
beginObject(). -
name
Set the next property name to write by position. This uses the already encoded name values of PropertyNames. -
name
Set the next property name to write.This is generally less efficient than using
names(PropertyNames)andname(int). -
beginArray
void beginArray()Write array begin. -
endArray
void endArray()Write array end. -
emptyArray
void emptyArray()Write empty array. -
beginObject
void beginObject()Write object begin. -
endObject
void endObject()Write object end. -
nullValue
void nullValue()Write null value. -
value
Write a string value. -
value
Write a boolean value. -
value
Write an int value. -
value
Write a long value. -
value
Write a double value. -
value
Write a Boolean value. -
value
Write an Integer value. -
value
Write a Long value. -
value
Write a Double value. -
value
Write a BigDecimal value. -
value
Write a BigInteger value. -
value
Write binary content as base64. -
jsonValue
Write a value that could be any value. -
rawValue
Write raw JSON content. -
writeNewLine
void writeNewLine()Write raw content. This is typically used to write new line characters forx-json-streamcontent. -
flush
void flush()Flush the writer. -
close
void close()Close the writer.- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable
-