использование библиотеки Gson в коде клиента GWT - PullRequest
18 голосов
/ 06 февраля 2010

В настоящее время я пишу веб-приложение на Java, используя GWT 2.0 в Eclipse. Я хотел знать, есть ли способ использовать библиотеку Gson в коде клиента приложения GWT.

а если есть способ - подскажите пожалуйста как ...

Спасибо!

Ответы [ 5 ]

25 голосов
/ 14 февраля 2010

Gson использует функции Java, которые не поддерживаются в GWT, такие как отражение. Таким образом, невозможно использовать Gson в коде на стороне клиента GWT.

15 голосов
/ 26 января 2011

Не совсем то, что вы написали, но я думаю, что вы имели в виду, как сериализовать / десериализовать 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 ...

3 голосов
/ 07 февраля 2015

(не стесняйтесь улучшать мой пост, если хотите)

в настоящее время (2015-02-07) это невозможно, хотя мне очень нравится Gson и я хотел бы иметь только одно решение для общего кода: - /, но есть и другие доступные библиотеки (я знаю только AutoBeans и Gson я быстро взглянул на Пирити):

(некоторые поддерживают как сериализацию XML, так и JSON (de) или только одну)

(*) из самого проекта GWT

Сравнения:

2 голосов
/ 10 мая 2013

У меня есть библиотека, которая позволяет использовать GWT с Gson, вы можете скачать здесь и наслаждаться ею.

2 голосов
/ 01 сентября 2011

В нашем проекте GWT мы используем piriti : http://code.google.com/p/piriti/

Работает как шарм: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...