JavaScript 객체를 Nashorn (Java 8)을 사용하여 Javascript 함수에 전달해야하는 String 형식 (실제로 데이터베이스에서 가져 오는 JavaScript 객체)이 있습니다. 엔진은 전달 된 매개 변수를 자바 스크립트에서 문자열로 취급합니다. Javascript 객체로 식별하고 싶습니다.Nashorn을 사용하여 Javascript Object를 Java에서 Javascript로 전달하는 방법
String script = "function genData(dataModel) { return 'hello world '+ dataModel.url.value + ' done'; }";
//"{url : {value : "abc.com",type : "string"},layout : {value : "",type : "string"}}";
String dataModel = "{url : {value : \"abc.com\",type : \"string\"},layout : {value : \"\",type : \"string\"}}";
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript");
Invocable inv = (Invocable) engine;
result = inv.invokeFunction("genData", dataModel);
내가 오류는 다음과 같습니다 :
javax.script.ScriptException : 형식 오류 : "값을"속성을 읽어 줄 번호 1
당신의 데이터 모델 리터럴 유효한 문자열 .... –
잘 생각이 어떻게 자바 스크립트 객체를 보여주고 있었다 아니다 외모가 생기지 않아 덜 위험 해집니다. 주석으로 옮기고 문자열이 이스케이프 처리되면 도움이됩니다. – iqz