proto文件:
option java_outer_classname = "PersonEntity";//生成的数据访问类的类名
message Person {
required int32 id = 1;//同上
required string name = 2;//必须字段,在后面的使用中必须为该段设置值
optional string email = 3;//可选字段,在后面的使用中可以自由决定是否为该字段设置值
}
使用idea编译成java解析文件:详见另一篇文章
引入依赖:
<dependency>
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.protobuf-java-format</groupId>
<artifactId>protobuf-java-format</artifactId>
<version>1.2</version>
</dependency>
PB转换为JSON:
PersonEntity.Person.Builder builder = PersonEntity.Person.newBuilder();
builder.setId(1);
builder.setName("极客慧");
builder.setEmail("jikeh@***.com");
PersonEntity.Person person = builder.build();
System.out.println("原pb文件: "+person.toString());
System.out.println("原pb文件转换为JSON文件: "+JsonFormat.printToString(person));
JSON转换为PB:
String jsonStr = "{"id": 1,"name": "极客慧","email": "jikeh@***.com"}";
PersonEntity.Person.Builder builderPerson = PersonEntity.Person.newBuilder();
JsonFormat.merge(jsonStr, builderPerson);
PersonEntity.Person person2 = builderPerson.build();
System.out.println("JSON文件转换为PB: "+person2.toString());
本文暂时没有评论,来添加一个吧(●'◡'●)