首页 > 解决方案 > 在 Java Nashorn 中使用 JSON.parse

问题描述

是否可以在带有 Java 8的Java Nashorn中使用 JSON.parse ?我还没有找到任何关于这个主题的明确内容。我已经读过,使用 JDK9 时包含本机 json 功能,但我使用的是 1.8。

json

[{ "user":"dave", "value":"accounting"},{ "user":"sara", "value":"research"}]

我正在调用一个用 js 编写的函数

Invocable invocable = (Invocable) engine;
invocable.invokeFunction("myFunc", json);

javascript

var myFunc = function(json) {
    // the json is input from elsewhere I want to be able to JSON.parse this or use a FileWriter and write it back out to a file as json
    JSON.parse(json);

    var f = new File("C:\\output", "log.log");
    var writer = new FileWriter(f, true);

 // problem is it only sees it as a string and doesn't write it like json
    writer.write(JSON.stringify(json));
    writer.write("\r\n");
    writer.close();

}

我希望能够将 json 从其他地方传递到 nashorn js 函数 myFunc,但将其作为 json 写入文件。似乎它变成了一个 java 对象,并且在这种情况下没有 JSON.parse ?那是对的吗?也许我正在处理这个错误,任何建议都值得赞赏。

标签: javascriptjavajsonjava-8nashorn

解决方案


推荐阅读