java 将字符串转换为json格式的方法(java把字符串转为json)

前言

本文讲解如何在java项目中,打印protobuf的结构体为 json。如果你刚刚接触到java和protobuf开发,这篇文章可以帮助到您。

java 将字符串转换为json格式的方法(java把字符串转为json)

问题

如果你直接用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;

然后在需要打印(获取json字符串的位置,编码)

JsonFormat.printer().includingDefaultValueFields() .print(grpcService.getUserInfo());

print(方法里是你的服务和方法)

这样就能获取到json格式的文本了。

JsonFormat.printer()获取一个打印工具类

includingDefaultValueFields 把所有的结构都带上

print 打印最终的目标对象

本站部分内容由互联网用户自发贡献,该文观点仅代表作者本人,本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。