protobuf對象不能直接使用jsonlib去轉,因為protobuf生成的對象的get方法返回的類型有byte[],而只有String類型可以作為json的key,protobuf提供方法進行轉換。
引用maven依賴:
<dependency> <groupId>com.googlecode.protobuf-java-format</groupId> <artifactId>protobuf-java-format</artifactId> <version>1.2</version> </dependency>
json轉成protobuf對象:
//json to protobuf TestBuilder.Test.Builder builder = TestBuilder.Test.newBuilder(); String jsonFormat = "{\"name\":\"張三\"}"; try { JsonFormat.merge(jsonFormat,builder); } catch (JsonFormat.ParseException e) { e.printStackTrace(); }
protobuf對象轉換成json:
//protobuf to json
TestBuilder.Test test = builder.build();
String s = JsonFormat.printToString(test);
System.out.println(s);