专业的JAVA编程教程与资源

网站首页 > java教程 正文

protobuf与json互相转换(proto转java)

temp10 2024-11-08 13:55:19 java教程 9 ℃ 0 评论

proto文件:

option java_outer_classname = "PersonEntity";//生成的数据访问类的类名

protobuf与json互相转换(proto转java)

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());

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表