我一直在使用 React-Redux 和 gRPC 开发 Web 应用程序。服务器发送前端 gRPC 消息,前端接收到的消息带有整数形式的枚举。如何将这些整数值转换为相应的字符串值?
我已经尝试过protoc生成的
_pb.js
文件(.toObject(), get<Enum>()
等中的方法)
message Example {
ExampleType type = 2;
}
enum ExampleType {
UNKNOWN_TYPE = 0;
TEST_TYPE = 1;
OTHER_TYPE = 2;
}
我期望
message.toObject()
JSON 对象具有以下形状:
{ type: string }
但是,我收到以下信息:
{ type: integer }
恐怕您无法获得该字符串值。 web protobuf 这样做是有原因的。如果它允许字符串枚举,则需要更多代码来指定这些枚举名称,这对代码大小不利。
我也有同样的问题。看起来这就是 protobuffers 的设计方式。有点愚蠢,它不会自动为您序列化/反序列化字符串枚举。