我正在尝试使用 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模块的错误有关。
答案 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);