`Any` contains an arbitrary serialized protocol buffer message along with a
URL that describes the type of the serialized message.
Protobuf library provides support to pack/unpack Any values in the form
of utility functions or additional generated methods of the Any type.
Example 1: Pack and unpack a message in C++.
Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
...
}
Example 2: Pack and unpack a message in Java.
Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
foo = any.unpack(Foo.class);
}
Example 3: Pack and unpack a message in Python.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
any.Unpack(foo)
...
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...}
any, err := ptypes.MarshalAny(foo)
...
foo := &pb.Foo{}
if err := ptypes.UnmarshalAny(any, foo); err != nil {
...
}
The pack methods provided by protobuf library will by default use
'type.googleapis.com/full.type.name' as the type URL and the unpack
methods only use the fully qualified type name after the last '/'
in the type URL, for example "foo.bar.com/x/y.z" will yield type
name "y.z".
JSON
====
The JSON representation of an `Any` value uses the regular
representation of the deserialized, embedded message, with an
additional field `@type` which contains the type URL. Example:
package google.profile;
message Person {
string first_name = 1;
string last_name = 2;
}
{
"@type": "type.googleapis.com/google.profile.Person",
"firstName": <string>,
"lastName": <string>
}
If the embedded message type is well-known and has a custom JSON
representation, that representation will be embedded adding a field
`value` which holds the custom JSON in addition to the `@type`
field. Example (for message [google.protobuf.Duration][]):
{
"@type": "type.googleapis.com/google.protobuf.Duration",
"value": "1.212s"
}
Protobuf type google.protobuf.Any
| Modifier and Type | Class and Description |
|---|---|
| public static class | Any.Builder
`Any` contains an arbitrary serialized protocol buffer message along with a URL that describes the type of the serialized message. |
| Modifier and Type | Field and Description |
|---|---|
| private volatile Message | |
| private static final Any | |
| private byte | |
| private static final Parser | |
| private static final long | |
| public static final int | |
| private volatile Object | |
| private ByteString | |
| public static final int |
| Access | Constructor and Description |
|---|---|
| private | |
| private | |
| private |
| Modifier and Type | Method and Description |
|---|---|
| public boolean | equals(final Object
object to be compared for equality with this message obj)Overrides com. Implements com. |
| public static Any | |
| public Any | getDefaultInstanceForType()
Implements com. |
| public static final Descriptors. | |
| public Parser | getParserForType()
Overrides com. Implements com. |
| public int | getSerializedSize()
Overrides com. Implements com. |
| private static String | |
| private static String | |
| public String | getTypeUrl()
Implements com. A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. |
| public ByteString | getTypeUrlBytes()
Implements com. A URL/resource name that uniquely identifies the type of the serialized protocol buffer message. |
| public final UnknownFieldSet | getUnknownFields()
Overrides com. Implements com. UnknownFieldSet for this message.
|
| public ByteString | getValue()
Implements com. Must be a valid serialized protocol buffer of the above specified type. |
| public int | hashCode()
Overrides com. Implements com. |
| protected GeneratedMessageV3. | internalGetFieldAccessorTable()
Implements abstract com. |
| public <T extends Message> boolean | |
| public final boolean | isInitialized()
Overrides com. Implements com. |
| public static Any. | |
| public static Any. | |
| public Any. | newBuilderForType()
Implements com. |
| protected Any. | newBuilderForType(GeneratedMessageV3.
Implements abstract com. |
| public static <T extends Message> Any | |
| public static <T extends Message> Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Any | |
| public static Parser | |
| public Any. | toBuilder()
Implements com. |
| public <T extends Message> T | |
| public void | writeTo(CodedOutputStream output)
Overrides com. Implements com. output.
|