public static class JsonFormat.Printer
extends java.lang.Object
Modifier and Type | Method and Description |
---|---|
void |
appendTo(MessageOrBuilder message,
java.lang.Appendable output)
Converts a protobuf message to JSON format.
|
JsonFormat.Printer |
includingDefaultValueFields()
Creates a new
JsonFormat.Printer that will also print fields set to their
defaults. |
JsonFormat.Printer |
includingDefaultValueFields(java.util.Set<Descriptors.FieldDescriptor> fieldsToAlwaysOutput)
Creates a new
JsonFormat.Printer that will also print default-valued fields if their
FieldDescriptors are found in the supplied set. |
JsonFormat.Printer |
omittingInsignificantWhitespace()
Create a new
JsonFormat.Printer that will omit all insignificant whitespace in the JSON output. |
JsonFormat.Printer |
preservingProtoFieldNames()
Creates a new
JsonFormat.Printer that is configured to use the original proto
field names as defined in the .proto file rather than converting them to
lowerCamelCase. |
java.lang.String |
print(MessageOrBuilder message)
Converts a protobuf message to JSON format.
|
JsonFormat.Printer |
printingEnumsAsInts()
Creates a new
JsonFormat.Printer that will print enum field values as integers instead of as
string. |
JsonFormat.Printer |
sortingMapKeys()
Create a new
JsonFormat.Printer that will sort the map keys in the JSON output. |
JsonFormat.Printer |
usingTypeRegistry(JsonFormat.TypeRegistry oldRegistry)
Creates a new
JsonFormat.Printer using the given registry. |
JsonFormat.Printer |
usingTypeRegistry(TypeRegistry registry)
Creates a new
JsonFormat.Printer using the given registry. |
public JsonFormat.Printer usingTypeRegistry(JsonFormat.TypeRegistry oldRegistry)
JsonFormat.Printer
using the given registry. The new Printer clones all other
configurations from the current JsonFormat.Printer
.java.lang.IllegalArgumentException
- if a registry is already set.public JsonFormat.Printer usingTypeRegistry(TypeRegistry registry)
JsonFormat.Printer
using the given registry. The new Printer clones all other
configurations from the current JsonFormat.Printer
.java.lang.IllegalArgumentException
- if a registry is already set.public JsonFormat.Printer includingDefaultValueFields()
JsonFormat.Printer
that will also print fields set to their
defaults. Empty repeated fields and map fields will be printed as well.
The new Printer clones all other configurations from the current
JsonFormat.Printer
.public JsonFormat.Printer printingEnumsAsInts()
JsonFormat.Printer
that will print enum field values as integers instead of as
string.
The new Printer clones all other configurations from the current
JsonFormat.Printer
.public JsonFormat.Printer includingDefaultValueFields(java.util.Set<Descriptors.FieldDescriptor> fieldsToAlwaysOutput)
JsonFormat.Printer
that will also print default-valued fields if their
FieldDescriptors are found in the supplied set. Empty repeated fields and map fields will be
printed as well, if they match. The new Printer clones all other configurations from the
current JsonFormat.Printer
. Call includingDefaultValueFields() with no args to unconditionally
output all fields.public JsonFormat.Printer preservingProtoFieldNames()
JsonFormat.Printer
that is configured to use the original proto
field names as defined in the .proto file rather than converting them to
lowerCamelCase. The new Printer clones all other configurations from the
current JsonFormat.Printer
.public JsonFormat.Printer omittingInsignificantWhitespace()
JsonFormat.Printer
that will omit all insignificant whitespace in the JSON output.
This new Printer clones all other configurations from the current Printer. Insignificant
whitespace is defined by the JSON spec as whitespace that appear between JSON structural
elements:
ws = *( %x20 / ; Space %x09 / ; Horizontal tab %x0A / ; Line feed or New line %x0D ) ; Carriage returnSee https://tools.ietf.org/html/rfc7159 current
JsonFormat.Printer
.public JsonFormat.Printer sortingMapKeys()
JsonFormat.Printer
that will sort the map keys in the JSON output.
Use of this modifier is discouraged, the generated JSON messages are equivalent with and without this option set, but there are some corner use cases that demand a stable output, while order of map keys is otherwise arbitrary.
The generated order is not well-defined and should not be depended on, but it's stable.
This new Printer clones all other configurations from the current JsonFormat.Printer
.
public void appendTo(MessageOrBuilder message, java.lang.Appendable output) throws java.io.IOException
InvalidProtocolBufferException
- if the message contains Any types that can't be
resolved.java.io.IOException
- if writing to the output fails.public java.lang.String print(MessageOrBuilder message) throws InvalidProtocolBufferException
InvalidProtocolBufferException