Java 如何用Proto定义表示JSON对象变量

Java 如何用Proto定义表示JSON对象变量,java,protocol-buffers,grpc,grpc-java,proto,Java,Protocol Buffers,Grpc,Grpc Java,Proto,我想在gRPC中定义一条请求消息,它应该有一个Json对象作为字段 例如 如何在proto定义中表示metainfo属性? 我试过使用下面的定义,但不起作用 message UserRequest{ string name = 1; string city = 2; string email = 3; google.protobuf.Any metainfo = 4; } 我认为您需要一个.google.protobuf.Struct,via-它本质上封装了一个

我想在gRPC中定义一条请求消息,它应该有一个Json对象作为字段 例如

如何在proto定义中表示metainfo属性? 我试过使用下面的定义,但不起作用

message UserRequest{
    string name = 1;
    string city = 2;
    string email = 3;
    google.protobuf.Any metainfo = 4;
}

我认为您需要一个
.google.protobuf.Struct
,via-它本质上封装了一个
映射字段
,与您希望通过JSON描述的内容大致类似。此外,
Struct
具有自定义JSON处理,如文件中所述:

Struct
的JSON表示是JSON对象

因此:

.google.protobuf.Struct metainfo=4;
message UserRequest{
    string name = 1;
    string city = 2;
    string email = 3;
    google.protobuf.Any metainfo = 4;
}