nev*_*_me 6 java protocol-buffers
我将 proto3 与 grpc 一起使用,我正在寻找一种更有效的方法来创建 protobuf 消息,而无需使用构建器并填充它。
如果我有一个字符串(来自 Message.toString()),我可以用该字符串重新创建消息吗?
如果我有消息类型
message TestMessage {
bool status = 1;
uint64 created = 2;
TestNested submessage = 3;
message TestNested {
int32 messageNumber = 1;
Entry entry = 2;
}
message Entry {
int32 id = 1;
EntryType entryType = 2;
}
enum EntryType {
DEFAULT_ENTRY = 0;
OTHER_ENTRY = 1;
}
}
Run Code Online (Sandbox Code Playgroud)
和以下输出:
status: true
created: 1534240073415
submessage {
messageNumber: 3
entry{
id: 47957
entryType: DEFAULT_ENTRY
}
}
Run Code Online (Sandbox Code Playgroud)
如何创建 TestMessage?我查看了 JavaDoc 以查看是否有一种parseFrom()方法可以接收字符串,但我没有获胜。
我正在寻找TextFormat解析器。Message.toString()打印的格式是 TextFormat 表示。
要转换回 protobuf 消息,我执行了以下操作:
TestMessage testMessage = new TestMessage.newBuilder();
CharSequence myText = "status: true\n ...";
com.google.protobuf.TextFormat.getParser().merge(myText, testMessage);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6636 次 |
| 最近记录: |