GWT覆盖Tpes检查是否为空
我正在使用GWT覆盖类型解析来自web服务器的JSON响应。一切正常,问题是,如果所需字段不存在: 例如: JavaScriptOverlay类型类GWT覆盖Tpes检查是否为空,gwt,types,overlay,Gwt,Types,Overlay,我正在使用GWT覆盖类型解析来自web服务器的JSON响应。一切正常,问题是,如果所需字段不存在: 例如: JavaScriptOverlay类型类 public class JSWorkplace extends JavaScriptObject{ protected JSWorkplace() { } public final native String getWidgets() /*-{ return this.Widgets; }-*/; 现在,如果我有
public class JSWorkplace extends JavaScriptObject{
protected JSWorkplace() {
}
public final native String getWidgets() /*-{
return this.Widgets;
}-*/;
现在,如果我有类似{Widgets:Bla}的东西来自服务器,一切正常,getWidgets返回Bla。
如果这个{}来自我的应用程序在gwtWidgets函数中抛出的服务器。在读取字段小部件之前,如何检查字段小部件是否存在
问候,,
Stefan您可以通过如下操作检查它是否未定义:this.Widgets==未定义。 就个人而言,我更喜欢在评估之后设置默认值。例如,为了创建JSWorkplace对象,我将调用如下方法:
public static native JSWorkspace createFromJSON(String json)/*-{
var object = eval('(' + json + ')');
if (object.Widgets == undefined) { object.Widgets = []; }
...
return object;
}*-/;
有很多理由不使用eval,因为eval不安全且速度慢。另外,解决方案也非常简单:public final native String getWidgets/*-{返回this.Widgets | |【】}-*/;