Есть два варианта сделать это, в зависимости от того, знаете ли вы заранее структуру вашего JSON.Если вы это сделаете, вы можете просто написать отдельное сообщение для вашего объекта JSON и включить его в исходное сообщение:
message SomeJSONMessage {
// Attributes of your JSON here
}
message HelloRequest {
int32 hello 1;
SomeJSONMessage message = 2;
}
Это возможно, потому что каждый тип JSON изначально соответствует типу Protobuf.
Если вы заранее не знаете структуру вашего JSON, вам придется использовать google.protobuf.Struct
, который в основном представляет собой JSON без определенной структуры:
message HelloRequest {
int32 hello 1;
google.protobuf.Struct message = 2;
}
Это легко сопоставляется с известными типами во многих языках программирования (объект в JS, dict в Python), но у вас не будет никакой гарантии относительно того, какие атрибуты он содержит.