Java讀js檔案,獲取object中的值
阿新 • • 發佈:2018-12-15
資料
classes=[
{
"name":"class1",
"student":["joke1","joke2"]
},{
"name":"class2",
"student":["joke3","joke4"]
}]
Java讀取資料
/*獲取執行JavaScript的執行引擎*/ ScriptEngine engine = new ScriptEngineManager().getEngineByName("javascript"); /*為檔案注入全域性變數*/ Bindings bindings = engine.createBindings(); /*設定繫結引數的作用域*/ engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE); // 獲得js檔案 engine.eval(new FileReader("/class.js")); Map<Object,Object> map = (Map) bindings.get("classes"); List<Class> list = new ArrayList<Class>(); for (Map.Entry entry:map.entrySet()){ Class class = new Class(); Map tempmap = (Map)entry.getValue(); Object object=tempmap.get("student"); net.sf.json.JSONArray ja = net.sf.json.JSONArray.fromObject(object); @SuppressWarnings("rawtypes") Iterator iterator = ja.iterator(); String str=""; while(iterator.hasNext()){ Object next = iterator.next(); JSONObject jaC = net.sf.json.JSONObject.fromObject(next); str+="["+jaC.get("0")+","+jaC.get("1")+"]"; // System.out.println(jaC.get("0")); // System.out.println(jaC.get("1")); } class.setStudent(str); class.setName(String.valueOf(tempmap.get("name"))); list.add(class); }
將object中的值讀取出來
Object object=tempmap.get("student"); net.sf.json.JSONArray ja = net.sf.json.JSONArray.fromObject(object); @SuppressWarnings("rawtypes") Iterator iterator = ja.iterator(); String str=""; while(iterator.hasNext()){ Object next = iterator.next(); JSONObject jaC = net.sf.json.JSONObject.fromObject(next); str+="["+jaC.get("0")+","+jaC.get("1")+"]"; // System.out.println(jaC.get("0")); // System.out.println(jaC.get("1")); } class.setStudent(str);