题
我无法将对象从JSON转换为JavaScript Overlay对象,然后又回来了。我现在在课堂上有以下内容:
public class Aff extends JavaScriptObject {
protected Aff() {};
public static native Aff fromJSONString(String jsonString) /*-{
return eval('(' + jsonString + ')');
}-*/;
public final native String toJSON() /*-{
return this.toString();
}-*/;
// followed by get/seters and a bunch of TODO.
}
我能够创建和使用对象,但 obj.toJSON()
返回 [object Object]
。如果没有手动转换回JSON,我似乎无法找到任何方法。
解决方案
this.toString();
实际上并不生成json代码。它打印对象的字符串表示。您将需要自定义代码来写出json,或者更好,使用库。
使用库的两种方法 - 使用gwt内置的json库。不是很好,但不需要编写jsni代码。或者,为您的模块xml添加脚本资源以用于库,例如 javascript json库,并使用在jsni。或者,找到另一个图书馆,那里有数百个。
不隶属于 StackOverflow