매개 변수가있는 http get 요청을 보내는 java (JDK6) 코드가 있습니다. 나는에 결합하여 반환 된 기능을 실행하려고 시도하고문자열로 처리 된 javascript 함수에서 json을 가져 오는 것이 http 응답에 반환되었습니다.
function JavascriptFunction() { return { "Root" : [ { ... ] }; }
: 내가 돌아올한다는 응답은 그 안에 다음과 같은 요청에 제공되는 쿼리 매개 변수에 대한 응답을 포함하는 JSON 트리를 포함하는 자바 스크립트 함수입니다 java에서 ScriptEngine API를 사용하여 JSON 노드를 검색하십시오. 반환되는 "것은"유형 sun.org.mozilla.javascript.internal.NativeObject의 때문에
String response = EntityUtils.toString(httpResponse.getEntity());
ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByExtension("js");
scriptEngine.eval(response);
String hopeThisIsJson = (String)((Invocable)scriptEngine).invokeFunction("JavascriptFunction");
나는 ClassCastException를 얻을.
"JavascriptFunction"메서드에서 원래 반환 된 json 트리 인 invokeFunction 메서드에서 반환 된이 개체를 궁극적으로 변환하는 방법을 알아 내려고합니다.
여기에서 응답 값을 확인 했습니까? String response = EntityUtils.toString (httpResponse.getEntity()); –
값을 확인했습니다. 그것은 문자열 화 된 자바 스크립트 함수였습니다. – user2714310