protobuf 生成的类 转 json字符串
背景
项目中rpc接口定义的类是使用protobuf定义的,然后会自动生成对应的类,但是打印的时候会换行,所以看看怎么解决这个问题
例子
public static void main(String[] args) {
Test test = Test.newBuilder().setA("a").setB("b").setC("c").build();
System.out.println(test);
}
输出:
a: "a"
b: "b"
c: "c"
可以看到有换行
方案
<!--protobuf与json互转-->
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java-util</artifactId>
<version>3.23.1</version>
</dependency>
public static String writeValueAsString(MessageOrBuilder message) {
try {
return JsonFormat.printer()
.omittingInsignificantWhitespace() //去掉换行
.print(message);
} catch (Exception e) {
log.error("print error, message={}, msg={}", message, e.getMessage(), e);
}
return StringUtils.EMPTY;
}
public static void main(String[] args) {
Test test = Test.newBuilder().setA("a").setB("b").setC("c").build();
System.out.println(writeValueAsString(test));
}
输出:
{"a":"a","b":"b","c":"c"}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南