【问题标题】:Rhino - Passing a javascript object to javaRhino - 将 javascript 对象传递给 java
【发布时间】:2013-09-01 23:34:20
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java javascript object rhino


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2019-03-08
        • 2014-10-07
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 2018-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-12-07
        相关资源
        最近更新 更多