背景
从kafka
中消费数据后拿到的是protobuf
序列化后的字节数组,转化为Java
中的proto
对象后,需要将这些protocol
对象继续处理成Json
串写入elasticsearch
。
各种问题
Json工具选择
刚开始尝试使用fastJson等工具来执行序列化,结果发现对于protobuf
这种特殊对象,这些序列化工具都会报错,比如fastJson
会提示UnsupportedOperationException: This field is not of enum type
。最后在网上查找资料,发现Google
专门提供了工具类来实现proto
对象的Json
化,com.google.protobuf.util.JsonFormat
。
可以参考这篇论文,https://segmentfault.com/a/1190000020270374
使用例子
JsonFormat.printer(