Как использовать json как член структуры в protobuf или grpc?

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

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

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

json,protocol-buffers,grpc,

0

Ответов: 1


0

Это можно сделать двумя способами, в зависимости от того, знаете ли вы структуру своего JSON заранее. Если вы это сделаете, вы можете просто написать отдельное сообщение для вашего объекта JSON и включить его в свое исходное сообщение:

message SomeJSONMessage {
    // Attributes of your JSON here
}

message HelloRequest {
    int32 hello 1;
    SomeJSONMessage message = 2;
}

Это возможно потому , что каждый тип JSON карты изначально типу Protobuf.

Если вы не знаете структуру своего JSON заранее, вам придется использовать a google.protobuf.Struct, который в основном представляет собой JSON без определенной структуры:

message HelloRequest {
    int32 hello 1;
    google.protobuf.Struct message = 2;
}

Это легко сопоставимо с известными типами во многих языках программирования (объект в JS, dict в Python), но вы не будете иметь никаких гарантий относительно того, какие атрибуты он содержит.

JSON, протокол-буфера, КПГРЫ,
Похожие вопросы