Package com.google.protobuf.util
Class JsonFormat.Printer
- java.lang.Object
-
- com.google.protobuf.util.JsonFormat.Printer
-
- Enclosing class:
- JsonFormat
public static class JsonFormat.Printer extends java.lang.Object
A Printer converts a protobuf message to the proto3 JSON format.
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
appendTo(MessageOrBuilder message, java.lang.Appendable output)
Converts a protobuf message to the proto3 JSON format.JsonFormat.Printer
includingDefaultValueFields()
Creates a newJsonFormat.Printer
that will also print fields set to their defaults.JsonFormat.Printer
includingDefaultValueFields(java.util.Set<Descriptors.FieldDescriptor> fieldsToAlwaysOutput)
Creates a newJsonFormat.Printer
that will also print default-valued fields if their FieldDescriptors are found in the supplied set.JsonFormat.Printer
omittingInsignificantWhitespace()
Create a newJsonFormat.Printer
that omits insignificant whitespace in the JSON output.JsonFormat.Printer
preservingProtoFieldNames()
Creates a newJsonFormat.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 the proto3 JSON format.JsonFormat.Printer
printingEnumsAsInts()
Creates a newJsonFormat.Printer
that prints enum field values as integers instead of as string.JsonFormat.Printer
sortingMapKeys()
Create a newJsonFormat.Printer
that will sort the map keys in the JSON output.JsonFormat.Printer
usingTypeRegistry(TypeRegistry registry)
Creates a newJsonFormat.Printer
using the given registry.JsonFormat.Printer
usingTypeRegistry(JsonFormat.TypeRegistry oldRegistry)
Creates a newJsonFormat.Printer
using the given registry.
-
-
-
Method Detail
-
usingTypeRegistry
public JsonFormat.Printer usingTypeRegistry(JsonFormat.TypeRegistry oldRegistry)
Creates a newJsonFormat.Printer
using the given registry. The new Printer clones all other configurations from the currentJsonFormat.Printer
.- Throws:
java.lang.IllegalArgumentException
- if a registry is already set
-
usingTypeRegistry
public JsonFormat.Printer usingTypeRegistry(TypeRegistry registry)
Creates a newJsonFormat.Printer
using the given registry. The new Printer clones all other configurations from the currentJsonFormat.Printer
.- Throws:
java.lang.IllegalArgumentException
- if a registry is already set
-
includingDefaultValueFields
public JsonFormat.Printer includingDefaultValueFields()
Creates a newJsonFormat.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 currentJsonFormat.Printer
.
-
printingEnumsAsInts
public JsonFormat.Printer printingEnumsAsInts()
Creates a newJsonFormat.Printer
that prints enum field values as integers instead of as string. The new Printer clones all other configurations from the currentJsonFormat.Printer
.
-
includingDefaultValueFields
public JsonFormat.Printer includingDefaultValueFields(java.util.Set<Descriptors.FieldDescriptor> fieldsToAlwaysOutput)
Creates a newJsonFormat.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 currentJsonFormat.Printer
. Call includingDefaultValueFields() with no args to unconditionally output all fields.
-
preservingProtoFieldNames
public JsonFormat.Printer preservingProtoFieldNames()
Creates a newJsonFormat.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 currentJsonFormat.Printer
.
-
omittingInsignificantWhitespace
public JsonFormat.Printer omittingInsignificantWhitespace()
Create a newJsonFormat.Printer
that omits 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 appears between JSON structural elements:ws = *( %x20 / ; Space %x09 / ; Horizontal tab %x0A / ; Line feed or New line %x0D ) ; Carriage return
See https://tools.ietf.org/html/rfc7159.
-
sortingMapKeys
public JsonFormat.Printer sortingMapKeys()
Create a newJsonFormat.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
.
-
appendTo
public void appendTo(MessageOrBuilder message, java.lang.Appendable output) throws java.io.IOException
Converts a protobuf message to the proto3 JSON format.- Throws:
InvalidProtocolBufferException
- if the message contains Any types that can't be resolvedjava.io.IOException
- if writing to the output fails
-
print
public java.lang.String print(MessageOrBuilder message) throws InvalidProtocolBufferException
Converts a protobuf message to the proto3 JSON format. Throws exceptions if there are unknown Any types in the message.- Throws:
InvalidProtocolBufferException
-
-