Запись Java класса protobuf в пользовательский JSON fomat - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь найти лучший подход для печати нескольких сгенерированных протобуфов Java классов в пользовательский читаемый формат JSON.

Учитывая следующий код, который использует Java класс, сгенерированный из protobuf:

Person.Builder personBuilder = PersonData.newBuilder();
Person person = personBuilder
  .setName("John Doe")
  .setAge("99")
  .build();

Ниже приводится представление JSON по умолчанию при использовании new JsonFormat().printToString(person):

{ "name": "John Doe", "age":99 }

Требуемое представление JSON:

"John Doe":{
  "age":99
}

Is Существует ли общий обобщенный c способ достижения вышеуказанного для нескольких моделей protobuf?

1 Ответ

0 голосов
/ 30 апреля 2020

Этого можно достичь путем преобразования объекта Person в структуру Map и размещения выбранных пар имя-значение. Собственно, JsonFormat будет придерживаться спецификации c https://developers.google.com/protocol-buffers/docs/proto3 Если вы переместите имя человека на имя объекта, это может затруднить взаимодействие - в зависимости от того, что вы пытаетесь сделать с этим конечно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...