使GRPC消息JSON可序列化
本文介绍了使GRPC消息JSON可序列化的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含重复标量值的GRPC定义。
例如
我注意到,当这个请求被发送到一个Python服务器时,mylist
被转换为RepeatedScalarContainer
,这是不可JSON序列化的。Some SO questions建议我使用
将协议错误消息转换为有效的JSON对象。 但在我的例子中,对收到的Python对象执行上述操作会得到一个截断的对象
您可以看到缺少许多消息属性。
作为一种解决办法,我仍然可以提取接收到的对象的属性来恢复数据,并通过暴力将它们转换为可序列化的JSON,但这看起来既难看又不可靠。这是我的办法
我应该如何使收到的原始GRPC请求像只包含内置基元值类型的Python对象一样工作?
推荐答案
我自己解决了。
有一个选项including_default_value_fields
和json_format.MessageToJson()
。设置为False
时,不会将所有默认字段打印为JSON,尽管它们是通过网络物理发送的。
遗憾的是,默认情况下该选项处于关闭状态。
将其设置为True
后,问题消失。
这篇关于使GRPC消息JSON可序列化的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!