Я ищу супер простую библиотеку JSON или YAML (не особо заботящуюся о том, какая именно), написанную на Java, и которую можно использовать как в GWT на клиенте, так и в исходной форме Java на сервере.
Я пытаюсь сделать следующее: у меня есть свои модели, которые совместно используются клиентом и сервером, и они являются основным источником обмена данными. Я хочу, чтобы промежуточный веб-сервис был максимально простым, и решил использовать подход RESTful.
Моя проблема в том, что я знаю, что наше приложение существенно вырастет в будущем, и написание всех геттеров, сеттеров, сериализаций, фабрик и т. Д. Вручную наполняет меня абсолютным страхом. Поэтому, чтобы избежать этого, я решил внедрить аннотации для отслеживания атрибутов на моделях.
Причина, по которой я не могу просто сериализовать все напрямую, используя собственную GWT или ту, которая работает через отражение, заключается в том, что нам нужно определенное количество логики в процессе сериализации. То есть будут ли сериализованы ссылки на другие модели во время сериализации исходной модели, или просто передан идентификатор, и общие простые вещи, подобные этому. Затем я написал процессор аннотаций для предварительной обработки моих общих моделей и создания реализующего класса со всеми геттерами, сеттерами, сериализацией, отложенной загрузкой и т. Д.
Короче говоря, мне нужна простая библиотека YAML или JSON, которая позволяет мне кодировать и декодировать вручную, чтобы я мог генерировать этот код с помощью моего процессора аннотаций. Я осмотрел сети, но все, с которыми я столкнулся, поддерживали какое-то отражение, которое, хотя и прекрасно, и делает его бесполезным для GWT. А в случае собственной библиотеки JSON GWT она использует JSNI в целях повышения скорости, что делает ее бесполезной на стороне сервера.
Одно решение, которое я задумал, заключалось в написании двух наборов методов сериализации для моделей, одного для клиента и одного для сервера, но я бы предпочел этого не делать.
Кроме того, я довольно новичок в GWT, и хотя я много работал с Java, он вернулся за 1,2 дня, так что он немного ржавый. Поэтому, если вы думаете, что я решаю эту проблему совершенно неправильно, я открыт для предложений.