Использование библиотеки Gson в коде клиента GWT
В настоящее время я пишу веб-приложение на Java, используя GWT 2.0 в Eclipse. Я хотел знать, есть ли способ использовать библиотеку Gson в клиентском коде приложения GWT.
и если есть способ - подскажите пожалуйста как...
Спасибо!
5 ответов
Не совсем то, что вы написали, но я думаю, что вы имели в виду, как сериализовать / десериализовать JSON в коде GWT?
В GWT 2.1.1 вы можете использовать GWT AutoBean Framework
Посмотрите внизу статьи, у него есть этот магический код...
String serializeToJson(Person person)
{
// Retrieve the AutoBean controller
AutoBean<Person> bean = AutoBeanUtils.getAutoBean(person);
return AutoBeanCodex.encode(bean).getPayload();
}
Person deserializeFromJson(String json)
{
AutoBean<Person> bean = AutoBeanCodex.decode(myFactory, Person.class, json);
return bean.as();
}
serializeToJson() прекрасно работает для меня даже с экземплярами, унаследованными от Person, но я не пробовал deserializeFromJson...
Gson использует функции Java, которые не поддерживаются в GWT, такие как отражение. Таким образом, невозможно использовать Gson в коде на стороне клиента GWT.
(не стесняйтесь улучшать мой пост, если хотите)
в настоящее время (2015-02-07) это невозможно, хотя мне очень нравится Gson и я хотел бы иметь только одно решение для общего кода: - /, но есть и другие доступные библиотеки (я знаю только AutoBeans и Gson и имел быстрый взгляд на Пирити):
(некоторые поддерживают как сериализацию XML, так и JSON (де))
- на стороне клиента и сервера
- AutoBeans (*): http://code.google.com/p/google-web-toolkit/wiki/AutoBean
- У меня были проблемы с дженериками (2015-02-07), подобными этим: RequestFactory: интерфейс реализации прокси с дженериками
- AutoBeans (*): http://code.google.com/p/google-web-toolkit/wiki/AutoBean
- на стороне клиента только
- пирити
- RestyGWT: http://restygwt.fusesource.org/documentation/restygwt-user-guide.html
- RocketGWT: http://code.google.com/p/rocket-gwt/wiki/JsonSerialization
- Acris: http://code.google.com/p/acris/wiki/GWTJsonizer
- Типы наложения JavaScript (*)
- только на стороне сервера
- Гсон (из Google)
(*) из самого проекта GWT
Сравнения:
Я написал библиотеку, которая позволяет использовать GWT с Gson, вы можете скачать здесь и наслаждаться ею.
В нашем проекте GWT мы используем piriti: http://code.google.com/p/piriti/
Работает как шарм:-)