JavaでScriptEngineを使用してJavascriptファイルを解析しようとしています。スクリプトの実行には興味がなく、値を取得するためにスクリプトを解析するだけです。
スクリプトファイルは、次の構造の一連の配列で構成されています。
var array= new Array();
array[0]=new Array();
array[0]['point']=new Point2D(2.454,-8.33);
array[0]['name']='Object 1';
array[1]=new Array();
array[1]['point']=new Point2D(42.84, 3.53);
array[1]['name']='Object 2';
...
Point2Dは次のように定義されています。
function Point2D(x,y) {
this.x = x;
this.y = y;
}
これまで、次のコードを使用してスクリプトを解析しました。
ScriptEngineManager mgr = new ScriptEngineManager();
ScriptEngine se = mgr.getEngineByName("JavaScript");
try {
se.eval(file);
NativeArray array = (NativeArray)se.get("array");
for(int i = 0; i < array.getLength(); i++){
if(array.get(i)!=null){
NativeArray elementArray = (NativeArray)array.get(i);
System.out.println("Object: " + elementArray);
System.out.println("name: " + elementArray.get("name", elementArray));
System.out.println("point: " + elementArray.get("point", elementArray));
}
}
}
catch (ScriptException e) {
....
}
これで名前は正しくわかりますが、Point2DアイテムのObjectクラスのインスタンスを取得します。元々はjavascriptオブジェクトだったので、どうすればそれを解析してx値とy値を取得できますか?