Java-объект в JSON - PullRequest
       5

Java-объект в JSON

2 голосов
/ 10 ноября 2010

Я использую Rhino для связи между Java и JavaScript.Я вызываю функцию JavaScript через Rhino, и эта функция принимает аргумент, который должен быть 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;
}

Ответы [ 2 ]

4 голосов
/ 10 ноября 2010

Я не использовал носорога, но для преобразования объектов / коллекций Java в json я использую библиотеку Google gson .

2 голосов
/ 05 мая 2011

Назад, когда я использовал Rhino, я просто преобразовал свой Java-JSON-Object (org.json.JSONObject) в String и передал их в качестве параметра функции в функцию javascript, существующую в области rhino.

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

Тогда объект кода String должен быть оценен Rhino. Объект String автоматически становится объектом Javascript внутри области видимости js (на стороне Rhino). А поскольку JSON - это всего лишь подмножество объектов javascript, это должно быть тем, что вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...