Передача объекта в виде массива в теле в proto3

Мне интересно, как я могу передать массив в качестве тела сообщения без указания ключа. Я могу легко сделать:

message TypeResponse {
  message Type {
    string ID = 1;
    string Name = 2;
    string Description = 3;
    string IsMobile = 4;
    string IsTablet = 5;
    string IsDesktop = 6;
  }
  repeated Type types = 1;
}

Это будет ответ с:

{
  "types": [
    {
      "ID": 1
      ...
    }
  ]
}

Я хотел бы структурировать свой ответ следующим образом, чтобы он соответствовал моему REST API:

[
    {
      "ID": 1
      ...
    },
    {
      "ID": 2
      ...
    }
]

person ddibiase    schedule 08.06.2017    source источник


Ответы (1)


Proto требует, чтобы концепция верхнего уровня представляла собой сообщение, которое перетекает в сопоставление JSON.

Что-то, что вы можете сделать, это просто пропустить первые символы, пока не достигнете символа [, а затем отбросить самый последний символ, который будет ]. Выходной формат для JSON указан в спецификации Proto3, поэтому вы может разумно зависеть от формата.

person Carl Mastrangelo    schedule 08.06.2017
comment
У вас случайно нет примера? - person ddibiase; 09.06.2017
comment
Боюсь, не видя вашего кода или языка, который вы используете. - person Carl Mastrangelo; 09.06.2017
comment
Node.js :-) Не так много кода для показа :-/ если вы не имеете в виду интерпретировать результаты перед отправкой обратно по каналу? Это легко, я думал, вы имели в виду сам прото. - person ddibiase; 09.06.2017