我試圖將我的Wicket項目中的JavaScript
集成到我的TestNG
測試套件中。我決定嘗試一下Nashorn項目。Nashorn/Javascript關聯數組到Java對象?
現在我想分析從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'有一個公開的接口 - http://cr.openjdk.java.net/~sundar/jdk。 nashorn.api/8u40/javadoc/jdk/nashorn/api/scripting/ScriptObjectMirror.html –
'ScriptObjectMirror'好像實現了'Map' - 當然你可以通過它訪問所有的鍵/值對嗎? –
harmic
「harmic」是正確的。 ScriptObjectMirror是Nashorn的文檔化界面的一部分。官方API網站鏈接是https://docs.oracle.com/javase/8/docs/jdk/api/nashorn/jdk/nashorn/api/scripting/ScriptObjectMirror.html –