【问题标题】:Java-object to JSONJava 对象到 JSON
【发布时间】:2010-11-10 09:57:20
【问题描述】:

我正在使用 Rhino 在 Java 和 JavaScript 之间进行通信。 我通过 Rhino 调用一个 JavaScript 函数,这个函数接受一个必须是 JSON 对象的参数。在我的情况下,如何将 Java 对象解析为 JSON 并将其传递给 JavaScript? Java代码:

try {     
    engine.eval(fileReader);
    Invocable invocableEngine = (Invocable) engine;
    Object o = invocableEngine.invokeFunction("f", MyObject json);
    System.out.println(o);
} catch (ScriptException ex) {
    ex.printStackTrace();
} catch(Exception e){
    e.printStackTrace();
}

JavaScript 代码:

function f(json){
    var id = json.id;
    return id;
}

【问题讨论】:

    标签: java javascript rhino


    【解决方案1】:

    我没有使用过 rhino,但是为了将 Java 对象/集合转换为 json,我使用了谷歌库 gson

    【讨论】:

      【解决方案2】:

      当我使用 Rhino 时,我只是将我的 Java-JSON-Object(org.json.JSONObject) 转换为 String 并将它们作为函数参数传递给 rhino 范围内的 javascript 函数。

      String itemDatagram = jsonItemDatagram.toString; 
      String code = "inside.js.scope.aFunction(" + itemDatagram + ");";
      

      然后必须由 Rhino 评估代码字符串对象。 String 对象自动成为 js 范围内的 Javascript 对象(在 Rhino 端)。由于 JSON 只是 javascript 对象的一个​​子集,这应该是您想要的。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-14
      • 1970-01-01
      • 2015-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多