【发布时间】:2015-07-13 07:12:42
【问题描述】:
我正在尝试将 Wicket 项目中的 JavaScript 集成到我的 TestNG 测试套件中。我决定试试 Nashorn 项目。
现在我想解析 nashorn 的结果。我从 javascript 返回一个关联数组,并得到一个 ScriptObjectMirror 作为返回类型。
ScriptEngine engine = factory.getEngineByName( "nashorn" );
String content = new String( Files.readAllBytes( Paths.get( "my-funcs.js" ) ) );
Object result = engine.eval( content + ";" + script );
当然,我可以 JSON.stringify 数组,使用更多的 javascript 脚本,然后使用 Gson 或类似的库将其解析回来,但是对于这个映射问题是否有更原生的方法?
【问题讨论】:
-
ScriptObjectMirror有一个文档化的接口 - cr.openjdk.java.net/~sundar/jdk.nashorn.api/8u40/javadoc/jdk/… -
ScriptObjectMirror似乎实现了Map<String,Object>- 您肯定可以通过它访问所有键/值对吗? -
“有害”是对的。 ScriptObjectMirror 是 Nashorn 文档化接口的一部分。 API官方链接为docs.oracle.com/javase/8/docs/jdk/api/nashorn/jdk/nashorn/api/…
标签: javascript java json nashorn