Ошибка компиляции: нет исходного кода для типа com.google.gson.Gson

Я пытаюсь проанализировать строку json на стороне клиента с помощью Gson, но при установке проекта получаю сообщение об ошибке:

 No source code is available for type com.google.gson.Gson; did you forget to inherit a required module?

я добавил <inherits name='com.google.gson.Gson' /> на моем gwt.xml. Я использую GWT 2.8.1 мы можем использовать Gson на стороне клиента?
[Это][1]

При использовании библиотеки Gson в коде клиента GWT использовалась более старая версия GWT, и мой вопрос также связан с ошибкой модуля Gson.

1 ответ

Решение

Gson не совместим с GWT. Вы должны использовать GWT-совместимую библиотеку, такую ​​как gwt-jackson.

В качестве альтернативы, если ваши модели просты, вы можете использовать технику под названием JsInterop DTO. И использовать браузер родной JSON.parse функционировать напрямую. Этот метод основан на JsInterop и некоторые ограничения объясняются здесь. Пример:

@JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object") 
class SearchResult {
    public String display_name; //ex: "Málaga, Provincia de Málaga, Andalusia, Spain"
    public String lat, lon; //ex: lat: "36.7210805", lon: "-4.4210409"
    public double importance; //ex: 0.73359836669253
}

А затем вызвать собственный анализ (необходимо импортировать библиотеку elemental2-core):

Object json = elemental2.core.JSONType.parse(jsonMessageString);
SearchResult result = jsinterop.base.Js.cast(json);
Другие вопросы по тегам