解析是指 protobuf 二进制文件。这协议和 json 不一样,数据类型并不是 1 对 1 的。
比如一个 Length-delimited 类型,int 是 2 ,同时对应多个子类型。可以是嵌入式 messages ,可以是 utf8 文本字符串,也可以是纯 bytes 数组。
现在写了一个解析器,是什么类型,要纯粹靠猜。先尝试 utf8 ,不行再退回到嵌入式 messages ,解析一次。如果还是不行,就默认为 bytes 数组。
总觉得很不靠谱的样子,在没有 proto 辅助的前提下,如何才能优雅的转为 json?
比如一个 Length-delimited 类型,int 是 2 ,同时对应多个子类型。可以是嵌入式 messages ,可以是 utf8 文本字符串,也可以是纯 bytes 数组。
现在写了一个解析器,是什么类型,要纯粹靠猜。先尝试 utf8 ,不行再退回到嵌入式 messages ,解析一次。如果还是不行,就默认为 bytes 数组。
总觉得很不靠谱的样子,在没有 proto 辅助的前提下,如何才能优雅的转为 json?