Ошибка компиляции: нет исходного кода для типа com.google.gson.Gson - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь проанализировать строку 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 на стороне клиента?
[this] [1]

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

1 Ответ

0 голосов
/ 28 мая 2018

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

В качестве альтернативы, если ваши модели просты, вы можете использовать технику, называемую JsInterop DTOs.И используйте функцию браузера 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 jsonObj = elemental2.core.Global.JSON.parse(jsonStr);
SearchResult result = jsinterop.base.Js.cast(jsonObj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...