JSONObject和JSONArray(json-lib-2.4)的基本用法

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

相關文章
相關標籤/搜索