У меня есть код java (JDK6), который отправляет запрос http get с параметрами. Ответ, что я вернусь является Java-функцией, которая содержит внутри себя JSon дерево, содержащее ответ на параметры запросов, указанных в запросе, как следующее:Извлечение json из строковой функции javascript, возвращаемой в ответе http
function JavascriptFunction() { return { "Root" : [ { ... ] }; }
Я пытающийся связываться и выполнять возвращаемую функцию используя ScriptEngine api в java для извлечения узла 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, дерево json, которое было первоначально возвращено из метода JavascriptFunction.
Вы проверили значение ответа здесь: Строковый ответ = EntityUtils.toString (httpResponse.getEntity()); –
Я проверил значение. Это была строгая функция Javascript. – user2714310