Кодировка JSON или YAML в GWT / Java на клиенте и сервере - PullRequest
5 голосов
/ 13 июня 2010

Я ищу супер простую библиотеку JSON или YAML (не особо заботящуюся о том, какая именно), написанную на Java, и которую можно использовать как в GWT на клиенте, так и в исходной форме Java на сервере.

Я пытаюсь сделать следующее: у меня есть свои модели, которые совместно используются клиентом и сервером, и они являются основным источником обмена данными. Я хочу, чтобы промежуточный веб-сервис был максимально простым, и решил использовать подход RESTful.

Моя проблема в том, что я знаю, что наше приложение существенно вырастет в будущем, и написание всех геттеров, сеттеров, сериализаций, фабрик и т. Д. Вручную наполняет меня абсолютным страхом. Поэтому, чтобы избежать этого, я решил внедрить аннотации для отслеживания атрибутов на моделях.

Причина, по которой я не могу просто сериализовать все напрямую, используя собственную GWT или ту, которая работает через отражение, заключается в том, что нам нужно определенное количество логики в процессе сериализации. То есть будут ли сериализованы ссылки на другие модели во время сериализации исходной модели, или просто передан идентификатор, и общие простые вещи, подобные этому. Затем я написал процессор аннотаций для предварительной обработки моих общих моделей и создания реализующего класса со всеми геттерами, сеттерами, сериализацией, отложенной загрузкой и т. Д.

Короче говоря, мне нужна простая библиотека YAML или JSON, которая позволяет мне кодировать и декодировать вручную, чтобы я мог генерировать этот код с помощью моего процессора аннотаций. Я осмотрел сети, но все, с которыми я столкнулся, поддерживали какое-то отражение, которое, хотя и прекрасно, и делает его бесполезным для GWT. А в случае собственной библиотеки JSON GWT она использует JSNI в целях повышения скорости, что делает ее бесполезной на стороне сервера.

Одно решение, которое я задумал, заключалось в написании двух наборов методов сериализации для моделей, одного для клиента и одного для сервера, но я бы предпочел этого не делать.

Кроме того, я довольно новичок в GWT, и хотя я много работал с Java, он вернулся за 1,2 дня, так что он немного ржавый. Поэтому, если вы думаете, что я решаю эту проблему совершенно неправильно, я открыт для предложений.

1 Ответ

4 голосов
/ 13 июня 2010

Вы изучили itemscript ?Некоторые выдержки из описания на веб-странице:

  • Кроссплатформенная библиотека GWT и стандартная Java JSON с удобными классами, анализаторами и утилитами.
  • API-интерфейс соединителя RESTful для поискаданных (JSON, текст и небольшие двоичные файлы) по различным протоколам.
  • Один и тот же JSON API можно использовать как в стандартной Java, так и в GWT Java.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...