请明确一点:我是C ++编码的业余爱好者。
目前,我正在使用Protobuff在c ++和java模型之间进行序列化和交换数据。由于两个模型都使用相同科学术语的不同变量名称(对于日常河流排水,c ++模型使用dailyRiverDrianage,而java使用dailyRdrainage)。我在协议中使用了一个新变量来定义一个被共享的变量。
我的问题是链接这两者的最佳方法(protoc变量和model变量)。无法在Java或C ++中更改变量名称
答案 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
这是您的解码器/转换器单元,您可以在接口更改时进行修改。