protobuf 动态 JAVA_在Java中将json转换为动态生成的protobuf

给定以下json响应:

{

"id" : "123456",

"name" : "John Doe",

"email" : "john.doe@example.com"

}

以及以下

文件:

message User {

string id = 1;

string name = 2;

string email = 3;

}

我希望能够动态地创建protobuf消息类(在运行时编译a.proto),以便在json响应得到字段增强时

"phone" : "+1234567890"

我可以上传一个新版本的protobuf文件

string phone = 4

如果我从一个帽子拉这些类,我想能够写一些东西沿着下面的代码。

import com.googlecode.protobuf.format.JsonFormat;

import com.googlecode.protobuf.Message;

import org.apache.commons.io.FileUtils;

...

public Message convertToProto(InputStream jsonInputStream){

// get the latest user.proto file

String userProtoFile = FileUtils.readFileToString("user.proto");

Message userProtoMessage = com.acme.ProtobufUtils.compile(userProtoFile);

Message.Builder builder = userProtoMessage.newBuilderForType();

new JsonFormat().merge(inputStream, Charset.forName("UTF-8"), builder);

return builder.build();

}

是否存在com.acme.ProtobufUtils.compile(…)方法?或者如何实施?运行protoc+加载类似乎有点过头了,但如果没有其他选择,我愿意使用它。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值