编译错误:没有源代码可用于com.google.gson.Gson类型

时间:2018-05-28 09:21:47

标签: java json gwt gson

我正在尝试使用 Gson 在客户端解析json字符串,但在安装项目时出错:

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

我在我的gwt.xml上添加了<inherits name='com.google.gson.Gson' />。 我正在使用GWT 2.8.1我们可以在客户端使用Gson吗? [本] [1]

using Gson library in GWT client code使用旧版本的GWT,我的问题也与Gson模块的错误有关。

1 个答案:

答案 0 :(得分:5)

Gson不兼容GWT。您应该使用与gwt-jackson类似的GWT兼容库。

或者,如果您的模型很简单,您可以使用一种名为JsInterop DTO的技术。并直接使用浏览器本机JSON.parse功能。此技术基于JsInterop,某些限制解释为here。例如:

@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
}

然后调用native parse(需要导入elemental2-core库):

Object jsonObj = elemental2.core.Global.JSON.parse(jsonStr);
SearchResult result = jsinterop.base.Js.cast(jsonObj);
相关问题