我在我的 GWT 服务器端填充了一个 JSONArray (org.JSON),然后想在客户端使用该对象。当我在我的共享包中使用 JSONObject(或数组)时,我得到了没有找到源的异常(虽然它在服务器上工作)。因此,我认为它不能在客户端使用或共享(尽管谷歌搜索无法确认)。
由于 shared 不会使用 JSONObject,我假设 JSNI 可以在 shared 中工作。我已经阅读了 google developer 和 stackoverflow 上的 GWT 覆盖类型,并在我的共享包中做了一个。但是,由于是 JSNI,所以不能在服务器上使用。因此,我尝试将 JSONObject.toString() 传递给我的共享类,然后将其用作调用以下 JSNI 方法的参数:
public native UserOverlay getUser(String jsonObj) /*-{
return jsonObj;
}-*/;
电话:
UserOverlay user = getUser(jsonobj);
但是,这会在调用位置产生 UnsatisfiedLinkError,据我所知,这意味着找不到 JSNI 方法,这意味着共享包不适用于 JSNI。
结论
我需要一种方法来在客户端、共享和服务器上使用我的 JSON 数据。如果该方法不同,那么我需要一种将一种方法转换为另一种方法的方法。我见过处理从覆盖类型转换为 JSONObject 的线程,但不是相反。