作者:000000 | 来源:互联网 | 2022-12-19 19:27
我怎么能转换grpc
/ protobuf3
消息,JSON
其中enum
表示为string
?
例如,protobuf
消息:
enum Level {
WARNING = 0;
FATAL = 1;
SEVERE = 2;
...
}
message Http {
string message = 1;
Level level = 2;
}
转换为:
j, _ := json.MarshalIndent(protoMessage, "", "\t")
至:
{
"message": "Hello world!",
"level": 2,
}
我希望得到:
{
"message": "Hello world!",
"level": "SEVERE",
}
谢谢
1> michaelbn..:
我发现我应该使用protobuf/jsonpb
包装而不是标准json
包装。
所以:
j, _ := json.MarshalIndent(protoMessage, "", "\t")
应该:
m := jsonpb.Marshaler{}
result, _ := m.MarshalToString(protoMessage)