通常須要用到如下jar包:html
commons-beanutils.jarjava
commons-collections-3.2.1.jarajax
commons-lang-2.6.jar數據庫
commons-logging-1.1.1.jarjson
ezmorph-1.0.6.jar數組
json-lib-2.4-jdk15.jarjsp
能夠在這裏下載。不過百度一下找下資源也很是方便的呵呵。函數
http://download.csdn.net/detail/tyfengyu/4478154spa
servlet端從數據庫取出來數據對象Entity,放到List<Entity> list裏面。(個人Entity裏面有name, country屬性)而後用net.sf.json.JSONArray處理一下:.net
ArrayList<Entity> list = (ArrayList<Entity>) Service.getEntity(); JSONArray jsonArray = JSONArray.fromObject(list); response.getWriter().write(jsonArray.toString());
jsp端在success中解析json對象比較簡單:
success: function(data){ var edata = eval(data); for(var i in edata) alert(edata[i].name); }
直接解析成對象數組的形式。
那從jsp端傳遞json對象數組去servlet呢?
我這裏傳了三個對象數組updataData, newData, deleteData,分別都是[{'name',num},{'country',str}] 的形式。應該先用JSON.stringify處理一下變成字符串,以便傳遞,ajax函數的data應該這麼寫:
data: {'updateData': JSON.stringify(updateData), 'newData': JSON.stringify(newData), 'deleteData': JSON.stringify(deleteData)},
Servlet端接收,其實就是把對象數組用JSONArray接收,而後對這個Array中的每一個JSONObject做遍歷,將其放到List裏面。例舉接收updataData的方式,其餘兩個對象數組也用一樣的方式能夠處理:
String updateData = request.getParameter("updateData"); List<Entity> updataDataList = new ArrayList<Entity>(); JSONArray jsa1 = JSONArray.fromObject(updateData); for(Object obj : jsa1){ JSONObject jso = JSONObject.fromObject(obj); Entity entity = new Entity(); entity .setName(jso.get("name").toString()); entity .setCountry(jso.get("country").toString()); updataDataList.add(entity ); }
經驗,mark一下。