在golang中,有没有一个好的方法来获得protobuf对象的人类可读的字符串表示?https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.DebugString?
我用https://github.com/golang/protobuf。
在golang中,有没有一个好的方法来获得protobuf对象的人类可读的字符串表示?https://developers.google.com/protocol-buffers/docs/reference/cpp/google.protobuf.message#Message.DebugString?
我用https://github.com/golang/protobuf。
5条答案
按热度按时间9gm1akwq1#
我相信你要找的是. MarshalTextString的原型。
字符串
你可以在Go包测试中看到一个例子。
zour9fqk2#
您可以使用TextMarshaler。通过稍微修改示例proto:
字符串
产出:
型
cgyqldqp3#
示例一:
字符串
例二:
型
示例三:
型
测试:
型
测试结果:
型
utugiqy64#
如果您需要将PB封送到结构化消息(JSON格式)中以备将来使用,则可以使用MarshalToString。
举个简单的例子:
字符串
或者参考official unit test就可以了。
1sbrub3j5#
由于github.com/golang/protobuf现在已被弃用,我为google.golang.org/protobuf软件包写了这个答案,因为它可能会帮助新读者。
prototext包旨在将消息转换为文本格式。输出是人类可读的。使用其他答案中的相同示例:
字符串
然而,我建议使用protojson包,因为它的输出也是人类可读的,并且它有更多的选项可用。
型