如何在 grpc-web 中将枚举值转换为字符串

问题描述 投票:0回答:2

我一直在使用 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 }
javascript enums grpc enumeration grpc-web
2个回答
2
投票

恐怕您无法获得该字符串值。 web protobuf 这样做是有原因的。如果它允许字符串枚举,则需要更多代码来指定这些枚举名称,这对代码大小不利。


0
投票

我也有同样的问题。看起来这就是 protobuffers 的设计方式。有点愚蠢,它不会自动为您序列化/反序列化字符串枚举。

© www.soinside.com 2019 - 2024. All rights reserved.