如何在proto文件中使用google.protobuf.struct将JSON结果存储在gRPC Java中

问题描述

我想在gRPC中从服务器向客户端返回JSON响应。

一种可能的方法是将其转换为字符串,返回响应,然后在客户端转换回Json Object,但我想知道我们可以做得更好吗?。

我在做一些Google,发现我们可以在 google.protobuf.struct 的帮助下完成此操作 但实际上并没有找到任何好的例子。

我想要一个示例,说明如何在Java中将其用作JSON。

解决方法

如果您使用的是proto3,则一个选项是定义一个protobuf消息,该消息将镜像您要填充的JSON对象。然后,您可以使用JsonFormat在protobuf和JSON之间进行转换。

使用com.google.protobuf.Struct代替自定义消息也可以。 similar question中显示了一个示例。