前言
本文讲解如何在java项目中,打印protobuf的结构体为 json。如果你刚刚接触到java和protobuf开发,这篇文章可以帮助到您。
问题
如果你直接用fastjson或者gson等转换对象为json string,你会报错。
比如你用
JSON.toJSONString(grpcService.getUserInfo());
报错像这样
: write javaBean error, fastjson version 1.2.56, class com.google.protobuf.Descriptors$FieldDescriptor,write javaBean error, fastjson version 1.2.56, class com.google.protobuf.Descriptors$Descriptor, fieldName : ***, write javaBean error,fastjson version 1.2.56,class com.google.protobuf.Descriptors$FieldDescriptor, fieldName : 1
正确打印为json
我们需要用内置的方法
需要先引入 这个包
import com.google.protobuf.util.JsonFormat;