ScriptEngine, как передать строку, которая представляет JSON?

Я пытался передать объект String, который представляет строку JSON из Java в функцию JavaScript, используя ScriptEngine в JDK 1.6.

Мой код работает в JSFIDDLEhttp://jsfiddle.net/hn4yk/13/ но когда я пытаюсь загрузить его с помощью ScriptEngine, он не работает и выдает исключение sun.org.mozilla.javascript.internal.EcmaError: TypeError: Невозможно прочитать свойство "resultList" из неопределенного (# 1164)

Я проверил, что переменная передана правильно, но метод eval или JSON.parse не работает! Я попытался поместить библиотеку для JSON.parse и мою функцию в один файл!

Это мой код Java:

public class InvokeScriptMethod {


    public static void main(String[] args) throws Exception {

        InputStream stream = new FileInputStream("C:/Subclipse/TestJavascriptServerSide/jsonInput.txt");
        StringWriter writer = new StringWriter();
        IOUtils.copy(stream, writer, "UTF-8");
        String jsonString = writer.toString();

        InputStream javascriptStream = new FileInputStream("C:/Subclipse/TestJavascriptServerSide/Script");
        StringWriter writerScript = new StringWriter();
        IOUtils.copy(javascriptStream, writerScript, "UTF-8");
        String javascriptString = writerScript.toString();

        ScriptEngineManager manager = new ScriptEngineManager();
        ScriptEngine engine = manager.getEngineByExtension("js");

        engine.eval(javascriptString);

        Invocable inv = (Invocable) engine;

        String convertedJson = (String)inv.invokeFunction("convertJSON",jsonString);

        System.out.println("results"+convertedJson);

        // now should I convert it to a writer to reply in a webapplication as response.getWriter().print(convertedJson);
        // and I would like to don't lose the JSON formatting to see data with indentation
    }
}

Любая помощь приветствуется! Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос