Rhino - 将javascript对象传递给java

时间:2013-09-01 23:34:20

标签: java javascript object rhino

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

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

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

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

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

2 个答案:

答案 0 :(得分:4)

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

Scriptable界面包含gethasput等方法,大致对应myObject.string1myObject.hasOwnProperty("string1")和{{}在JavaScript中1}} myObject.string1 = "Hello"类添加了一些其他有用的方法来定义属性等。

答案 1 :(得分:0)

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

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

您可以使用JSON.stringify

将javascript对象转换为JSON

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