0

パラメータ付きの http get リクエストを送信する Java (JDK6) コードがあります。返される応答は、次のような要求で提供されたクエリ パラメーターへの応答を含む json ツリーを含む JavaScript 関数です。

function JavascriptFunction() { return { "Root" : [ { ... ] }; }

JSONノードを取得するために、JavaのScriptEngine APIを使用して、返された関数にバインドして実行しようとしています。

String response = EntityUtils.toString(httpResponse.getEntity());
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByExtension("js");
scriptEngine.eval(response);

String hopeThisIsJson = (String)((Invocable)scriptEngine).invokeFunction("JavascriptFunction");

返される「もの」が sun.org.mozilla.javascript.internal.NativeObject 型であるため、ClassCastException が発生します。
invokeFunction メソッドから返されたこのオブジェクトを、もともと「JavascriptFunction」メソッドから返された json ツリーに最終的に変換する方法を見つけようとしています。

4

1 に答える 1