GWTサーバー側でJSONArray(org.JSON)を入力してから、クライアント側でオブジェクトを使用したいと思います。共有パッケージでJSONObject(または配列)を使用すると、ソースが見つからなかったという例外が発生します(サーバー上で動作している間)。したがって、クライアント側で使用したり、共有したりすることはできないと思います(グーグルにもかかわらず確認できませんでした)。
sharedはJSONObjectを使用しないため、JSNIはsharedで機能すると思いました。私はグーグル開発者とここスタックオーバーフローでGWTオーバーレイタイプを読み、共有パッケージでそれを作りました。ただし、JSNIであるため、サーバー上では使用できません。したがって、JSONObject.toString()を共有クラスに渡して、次のJSNIメソッドを呼び出すためのパラメーターとして使用しようとします。
public native UserOverlay getUser(String jsonObj) /*-{
return jsonObj;
}-*/;
呼び出し:
UserOverlay user = getUser(jsonobj);
ただし、これにより、呼び出しの場所にUnsatisfiedLinkErrorが発生します。これは、私が知る限り、JSNIメソッドが見つからなかったことを意味し、共有パッケージがJSNIで機能しないことを意味します。
結論
クライアント、共有、サーバーの両方でJSONデータを使用する方法が必要です。その方法が異なる場合は、ある方法を別の方法に変換する方法が必要です。オーバーレイタイプからJSONObjectへの変換を処理するスレッドを見たことがありますが、その逆はありません。