我有发送带有参数的http get请求的java(JDK6)代码。我得到的响应是一个 javascript 函数,其中包含一个 json 树,其中包含对请求中提供的查询参数的响应,如下所示:
function JavascriptFunction() { return { "Root" : [ { ... ] }; }
我正在尝试使用 java 中的 ScriptEngine api 绑定并执行返回的函数以检索 JSON 节点。
String response = EntityUtils.toString(httpResponse.getEntity());
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByExtension("js");
scriptEngine.eval(response);
String hopeThisIsJson = (String)((Invocable)scriptEngine).invokeFunction("JavascriptFunction");
我得到一个 ClassCastException,因为返回的“东西”是 sun.org.mozilla.javascript.internal.NativeObject 类型。
我试图弄清楚如何最终将从invokeFunction方法返回的这个对象转换为最初从“JavascriptFunction”方法返回的json树。