java - 如何用 Proto 定义表示 JSON 对象变量
问题描述
我想在 gRPC 中定义一个请求消息,它应该有一个 Json 对象作为字段例如
message UserRequest{
string name = 1;
string city = 2;
string email = 3;
metainfo = 4;//A Json Object variable which can have any number of elements
}
如何在 proto 定义中表示 metainfo 属性?我试过使用下面的定义,但没有用。
message UserRequest{
string name = 1;
string city = 2;
string email = 3;
google.protobuf.Any metainfo = 4;
}
解决方案
我认为你想要一个.google.protobuf.Struct
, via struct.proto - 这本质上封装了一个map<string, Value> fields
, 并且大致类似于你想通过 JSON 描述的内容。此外,Struct
具有自定义 JSON 处理,如文件中所述:
JSON 表示
Struct
是 JSON 对象。
所以:
.google.protobuf.Struct metainfo = 4;
推荐阅读
- azure-active-directory - 在 CloudShell 中使用 MSAL
- apache-kafka - @KafkaListener : 事件的行为和跟踪处理
- python - pythonanywhere:错误代码:未处理的异常
- knn - 如何通过绘制 KNN 弯头来确定 DBSCAN 的最佳 epsilon 值(以米为单位)
- android - 材质日期选择器自定义样式白色样式
- reactjs - 物料表选择行导出
- raspberry-pi - gpiozero vs rpi.gpio 库性能 + 控制
- swift - 使用组合时存储值
- flutter - 设置中心文本 Flutter
- javascript - 未捕获的类型错误:无法读取函数中未定义的属性“添加”