json-lib-2.4是一個用於JSON和java對象間轉換的第三方包,其jar和依賴包下載地址在:https://files.cnblogs.com/files/xiandedanteng/json-lib-2.4%26dependencies_jars.rarhtml
下面列出了一些基本用法java
1.從對象到JSONajax
1.1 單個對象的轉化json
Piece p=pieceService.getPiece(id);
String json=JSONObject.fromObject(p).toString();
1.2 對象集合的轉化服務器
List<?> ls=pieceService.listAllPieces(); // ls中元素是Piece對象 JSONArray jArray=JSONArray.fromObject(ls); String json=jArray.toString();
2.JSON到對象app
前臺經過Ajax方式傳json到後臺好比像這樣:函數
$.ajax({ url: url,// 請求的地址 contentType: "application/json; charset=utf-8", data:{json:JSON.stringify(lines)},// 請求參數 type:"get",// 請求方式 dataType:"json",// 預期服務器返回的數據類型 success: function(resp) { ...... }, timeout: 50000,// 超時時間,超時後會調用error後的函數 error: function(xhr, textStatus, errorThrown) { ...... } });
後臺將這樣獲得前臺送過來的參數:url
String jsonString=request.getParameter("json");
而到的的jsonString是相似這樣的: spa
[{"type":"in","pieceid":"6","count":"9","date":"09/05/2017"},{"type":"in","pieceid":"6","count":"9","date":"09/28/2017"},{"type":"in","pieceid":"6","count":"9","date":"09/28/2017"}]
後臺將JSON轉化爲對象能夠這樣:code
List<InoutLine> lines=new ArrayList<InoutLine>(); String jsonString=request.getParameter("json"); JSONArray json=JSONArray.fromObject(jsonString); JSONObject jsonOne; for(int i=0;i<json.size();i++){ jsonOne = json.getJSONObject(i); InoutLine line=new InoutLine(); line.setType((String) jsonOne.get("type")); line.setPieceid((String) jsonOne.get("pieceid")); line.setCount((String) jsonOne.get("count")); line.setDate((String) jsonOne.get("date")); lines.add(line); }
這樣,JSON形式的字符串就變成Java裏的對象了。
參考資料:
1.Json字符串和java對象的互轉 http://www.javashuo.com/article/p-yvysbiba-hv.html