Protoc变量一致

时间:2018-07-23 14:28:05

标签: java c++ protocol-buffers

请明确一点:我是C ++编码的业余爱好者。

目前,我正在使用Protobuff在c ++和java模型之间进行序列化和交换数据。由于两个模型都使用相同科学术语的不同变量名称(对于日常河流排水,c ++模型使用dailyRiverDrianage,而java使用dailyRdrainage)。我在协议中使用了一个新变量来定义一个被共享的变量。

我的问题是链接这两者的最佳方法(protoc变量和model变量)。无法在Java或C ++中更改变量名称

1 个答案:

答案 0 :(得分:0)

基本上,您需要在一侧上具有一个中间层,以对原始文件进行一致的映射。在Java方面执行此操作,因为您对使用该语言更熟悉。该中间层将从Java上的内容映射到具有不同名称的Java变量。

编辑:

C ++方面

message Person {
  required string name = 1;
  required int32 id = 2;
  optional string email = 3;
}

Java Side

message Individual {
  required string fullName = 1;
  required int32 personal_id = 2;
  optional string personal_email = 3;
}

将数据从C ++端发送到Java端。在Java端生成相同的Person消息单元,然后反序列化消息以获取数据并进行复制(映射)。

name -> fullName
id -> personal_id
email -> personal_email

这是您的解码器/转换器单元,您可以在接口更改时进行修改。