我对Rhino很新,我的问题是如何实现以下目标,
假设我有一个javascript对象,它遵循以下类似于我可以在java中使用的内容。
var myObject = new Object();
myObject.string1 = "Hello";
myObject.string2 = "World";
myObject.int1 = 1;
但是如果它是动态的,我如何在java中使用它。对于.e.g。如果您决定在javascript中动态添加更多成员到此对象。这可行吗?我的猜测是java中定义的类必须考虑所有可能的成员才能做到这一点吗?
希望我已经解释了我想要正确实现的目标。
答案 0 :(得分:4)
当您使用Java访问它们时,JavaScript对象基本上都是同一个类:ScriptableObject
,它实现了Scriptable
接口(GitHub source)。函数和其他专用对象还有一些其他类。
Scriptable
界面包含get
,has
和put
等方法,大致对应myObject.string1
,myObject.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对象。