java - 如何将 Javascript 数组结果输入到 Java 中?

标签 java javascript scripting rhino

我想使用 Java 的 ScriptEngine,但我在使用 javascript split 函数时遇到一些问题,如下所示:

    ScriptEngineManager manager = new ScriptEngineManager();
    ScriptEngine engine = manager.getEngineByName("javascript");
    Bindings bindings = engine.createBindings();
    bindings.put("example", "123/456/789");

    String s1 = "var obj = example.split(\"/\"); print(obj[0]);";

    Object result = engine.eval(s1, bindings);

    System.out.println(result);

当我评估脚本时;此代码打印“123null”,因为结果为 null。当我尝试返回语句而不是像这样打印时:

    String s1 = "var obj = example.split(\"/\"); return obj[0];";

抛出异常:

线程“main”javax.script.ScriptException中出现异常:sun.org.mozilla.javascript.internal.EvaluatorException:第1行中的无效返回(#1)

那么我应该如何从这个分割的 native 数组中获取第一个索引的值?

最佳答案

尝试:

var obj = example.split(\"/\"); obj[0];

关于java - 如何将 Javascript 数组结果输入到 Java 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16854462/

相关文章:

linux - 发送电子邮件的 Shell 脚本

c# - 团结 : player moves up without any such code

java - 通过 FXCollections 从 FXML 创建集合

javascript - 在内部函数内将对象返回给父函数?

javascript - 主干路由器 : Get rid of# in the URL

javascript - 如何在 HighCharts 折线图中选择性地在某些点显示标签

C# 解释器(无需编译)

java - 这个()和这个

java - 将 xml 存储到 xml 属性中

java - Python 和 Java 进行 Base64 解码的区别