2

我对 Rhino 很陌生,我的问题是如何实现以下目标,

假设我有一个 javascript 对象,它遵循以下内容,我可以在 java 中使用。

var myObject = new Object();
myObject.string1 = "Hello";
myObject.string2 = "World";
myObject.int1 = 1;

但是如果它是动态的,我如何在java中使用它。对于 .eg,如果您决定在 javascript 中动态地向该对象添加更多成员。这是可行的吗?我的猜测是在 java 中定义的类必须考虑所有可能的成员才能做到这一点?

希望我已经解释了我试图正确实现的目标。

4

2 回答 2

4

JavaScript 对象,当您在 Java 中访问它们时,它们本质上都是同一个类:ScriptableObject它实现了Scriptable接口(GitHub 源代码)。还有一些其他类用于函数和其他专用对象。

Scriptable接口包括类似gethas和的方法,put它们大致对应于 JavaScript 中的myObject.string1myObject.hasOwnProperty("string1")和。myObject.string1 = "Hello"该类ScriptableObject添加了一些其他有用的方法来定义属性等。

于 2013-09-02T01:21:06.957 回答
0

考虑使用像 GSON 这样的库来将 javascript 对象转换为 JAVA。

https://code.google.com/p/google-gson/

您可以使用 JSON.stringify 将 javascript 对象转换为 JSON

然后使用 GSON 或其他此类库生成 Java 对象。

于 2013-09-01T23:41:19.607 回答