본문 바로가기

Trouble Shooting

nashorn, 외부 JSON객체 파싱 및 할당하기

자바에서 제공하는 nashorn 스크립트 엔진을 이용해서 엔진 바깥에서 JSON 문자열을 해석하고, 구해진 객체를 다시 엔진에 할당하는 코드를 구현해 본다.


ScriptEngineManager engineManager = new ScriptEngineManager();

ScriptEngine engine = engineManager.getEngineByName("nashorn");


// parse JSON

ScriptObjectMirror json = (ScriptObjectMirror)engine.eval("JSON");


String data = "{\"name\":\"ZCUBE\"}";

ScriptObjectMirror parsed = (ScriptObjectMirror)json.callMember("parse", data);


// binding

engine.put("spec", parsed);


// run test code

String script = "print('Hello ' + spec.name)";

engine.eval(script);



nashorn 스크립트 엔진의 "JSON"객체를 가져와서 "parse" 함수를 이용하면 쉽게 엔진과 호환되는 JSON객체를 구할 수 있다. 이 객체를 엔진에 바인딩 하면 된다.


출력 결과는 당연히 "Hello ZCUBE"