Как использовать json в качестве члена структуры в protobuf или grpc? - PullRequest
0 голосов
/ 26 июня 2018

При разработке с использованием javascript нам всегда нужно переносить json с помощью rpc.Теперь я хочу использовать json в качестве члена структуры сообщения в grpc.Пожалуйста, смотрите ниже:

message HelloRequest{
    int32 hello = 1;
    json world = 2
} 

Как это сделать?

1 Ответ

0 голосов
/ 29 июня 2018

Есть два варианта сделать это, в зависимости от того, знаете ли вы заранее структуру вашего 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), но у вас не будет никакой гарантии относительно того, какие атрибуты он содержит.

...