Вопрос по amqp, java, protocol-buffers – Как бы вы закодировали карту <String, Object> с использованием буферов протокола?

14

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

Формат моего сообщения должен содержать карту & lt; String, Object & gt; записи ... но как мне написать определение .proto?

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

Есть идеи?

Для чего оно стоит: теперь оно выглядит как «proto3»; имеетmaps<,> синтаксис:developers.google.com/protocol-buffers/docs/proto3#maps Stijn Sanders

Ваш Ответ

1   ответ
10

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

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

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

Итак ... Есть идеи?
@artuh - что ты в итоге использовал для своей проблемы?
звучит разумно ... но я думаю, что вы правы: PB не выглядит хорошо подходит для моей проблемы arturh
@ Franz & # xE9; Jr .: Учитывая, что вы не предъявляли какие-либо иные требования, с какой стати вы ожидаете другую информацию? Буферы протокола теперь поддерживают концепцию карты, но не для «общего сообщения» - это должно быть определенного типа.

Похожие вопросы