Java: протобуф из строки - PullRequest
       11

Java: протобуф из строки

0 голосов
/ 03 сентября 2018

Я использую 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;
    }
}

и вывод ниже:

status: true
created: 1534240073415
submessage {
  messageNumber: 3
  entry{
    id: 47957
    entryType: DEFAULT_ENTRY
  }
}

Как я могу создать TestMessage? Я посмотрел на JavaDoc, чтобы увидеть, есть ли метод parseFrom(), который принимает строку, но я не выигрываю.

1 Ответ

0 голосов
/ 03 сентября 2018

Я искал парсер TextFormat . Формат, который печатает Message.toString(), является представлением TextFormat.

Чтобы преобразовать обратно в сообщение protobuf, я сделал следующее:

TestMessage testMessage = new TestMessage.newBuilder();

CharSequence myText = "status: true\n ...";

com.google.protobuf.TextFormat.getParser().merge(myText, testMessage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...