Как бы вы закодировали карту<String, Object=""> используя буферы протокола?

StackOverflow https://stackoverflow.com/questions/1102900

  •  12-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать Буферы протоколов для сериализации сообщений.

Формат моего сообщения должен содержать карту< Строка, Объект > записи ...но как мне написать определение .proto?

Насколько я знаю, Protocol Buffers не имеет встроенного типа карты.Я мог бы смоделировать это, используя повторяющиеся поля.Но большая проблема, с которой я сталкиваюсь, заключается в том, что вам нужно определить все ваши типы.Я хочу, чтобы мое сообщение было гибким, поэтому я не могу указывать типы.

Есть какие-нибудь идеи?

Это было полезно?

Решение

Я бы смоделировал кортеж с ключом и значением (вероятно, по одному полю значения для каждого типа, которым может быть значение).Затем просто создайте повторяющийся список этого типа кортежа.Вам нужно было бы создать саму карту в коде.

Когда вы говорите, что не можете указать типы - о каких типах вы говорите?Если у вас есть необязательное поле каждого типа в кортеже, то это сработало бы для всех примитивов - и вы мог бы сопоставьте сообщения, сериализуя их в байтовую строку.

Похоже, что уровень "неструктурированности", который у вас есть, возможно, не очень подходит для PB.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top