gpt4 book ai didi

javascript - Java Scripting API——来自 JavaScript 对象的属性始终为 null

转载 作者:搜寻专家 更新时间:2023-11-01 03:20:50 25 4
gpt4 key购买 nike

下面是我在 Java 编译器中运行的代码:

ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");

engine.put("person", "{name: 'Bob', favoriteColor: 'red'}");
System.out.println(engine.get("person.name"));

我希望它的计算结果为“Bob”,但它却给了我 null。如果我尝试只打印用户对象,它会正确地给我这个输出:

{name: 'Bob', favoriteColor: 'red'}

为什么 person.name 评估为 null?任何帮助将不胜感激!

最佳答案

显然 put 方法不计算传递的值,但假设它是一个文字。例如 script.put("test", 5) 会将文字整数值 5 放入名为 test 的变量中。

第二个错误是 get 也没有计算它的参数,而是假定它也是变量的字面名称。

但是,您可以完成您想要完成的事情。试试这个:

engine.eval ("var person = {name: 'Bob', favoriteColor: 'red'}");
System.out.println(((Bindings) engine.get("person")).get ("name"));

关于javascript - Java Scripting API——来自 JavaScript 对象的属性始终为 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30988451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com