(1) может не быть , что много работает, так как многие библиотеки сериализации включают вспомогательный API, который знает, как читать / записывать примитивные значения и разделители.
(2), вероятно, предоставляет вам самый широкий выбор инструментов: https://github.com/eishay/jvm-serializers/wiki/ToolBehavior (некоторые не зависят от языка). Недостатки, но, надеюсь, не совсем бесполезные тесты: https://github.com/eishay/jvm-serializers/wiki
Многие из этих инструментов генерируют классы, которые требуют написания кода для преобразования в / из ваших POJO. Инструменты, которые работают с POJO напрямую, обычно не зависят от языка.
(3) кажется плохой идеей (ничего не знать о вашем конкретном проекте). Обычно в моих классах сообщений нет никакой другой логики.
(4) Библиотека Protostuff (которая поддерживает формат протокола буфера) позволяет написать «схему» , чтобы описать, как вы хотите, чтобы ваши POJO сериализовались. Но написание этой схемы может оказаться более трудоемким и более подверженным ошибкам, чем просто написание кода для преобразования между вашими POJO и классами, сгенерированными некоторыми инструментами.
Protostuff также может автоматически генерировать схему с помощью отражения, но это может привести к формату сообщения, который кажется немного ориентированным на Java.