将JavaScript Overlays转换回JSON?

时间:2009-03-04 18:07:34

标签: gwt

我无法将对象从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,我似乎无法找到任何方法。

1 个答案:

答案 0 :(得分:0)

  

this.toString();

实际上并不生成json代码。它打印对象的字符串表示。您将需要自定义代码来写出json,或者更好,使用库。

使用库的两种方法 - 使用gwt内置的json库。不是很好,但不需要编写jsni代码。或者,为您的模块xml添加一个脚本资源,用于库(例如一个javascript json library here),并在jsni中使用它。或者,找到另一个图书馆,那里有数百个。