java protobuf 转json string
时间: 2023-11-14 10:56:46 浏览: 244
protobuf转换为json
5星 · 资源好评率100%
要在Java中将protobuf转换为json字符串,可以使用Google提供的protobuf-java-util库中的JsonFormat类。以下是一个示例代码:
```java
import com.google.protobuf.Message;
import com.google.protobuf.util.JsonFormat;
public class ProtoJsonUtils {
public static String toJson(Message sourceMessage) throws Exception {
return JsonFormat.printer().omittingInsignificantWhitespace().print(sourceMessage);
}
}
```
在上述代码中,toJson方法接收一个Message对象作为输入,并使用JsonFormat.printer()方法创建一个JsonFormat.Printer对象。然后,使用该对象的print方法将Message对象转换为格式化的json字符串。使用omittingInsignificantWhitespace方法可以删除json字符串中的不重要的空格。
你可以调用该toJson方法,并传入你的protobuf对象,它将返回对应的json字符串。
请注意,以上代码仅适用于普通的protobuf消息。如果你的消息中包含Any类型字段或枚举类型字段,该代码可能无法正常工作。如果需要处理这些特殊情况,请使用更复杂的逻辑或考虑使用其他库来完成转换。
阅读全文