我无法将对象从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,我似乎无法找到任何方法。
答案 0 :(得分:0)
this.toString();
实际上并不生成json代码。它打印对象的字符串表示。您将需要自定义代码来写出json,或者更好,使用库。
使用库的两种方法 - 使用gwt内置的json库。不是很好,但不需要编写jsni代码。或者,为您的模块xml添加一个脚本资源,用于库(例如一个javascript json library here),并在jsni中使用它。或者,找到另一个图书馆,那里有数百个。