son入門(2) json在服務(wù)器端的應(yīng)用
在上文中說了json應(yīng)用的一個(gè)簡單過程。在本文中詳細(xì)說一個(gè)json在服務(wù)器端的應(yīng)用。
json在服務(wù)器端應(yīng)用大致分為2類:
1,接受并解析客戶端發(fā)送給服務(wù)器的json數(shù)據(jù)
2,服務(wù)器向客戶端發(fā)送json數(shù)據(jù)
下面分別說一下這2方面的應(yīng)用:
1,接受并解析客戶端發(fā)送給服務(wù)器的json數(shù)據(jù)
如果客戶端發(fā)送給服務(wù)器的數(shù)據(jù)是 {name:'hello',obj:['age','13']}
服務(wù)器端程序如下:
package com.test;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/*+++++++++++++++++++++++++++++++++++++++++++++++++
+@author lzh
+Description:
+Copyright:Copyright 2008 HULIZHONG
+Author:lzh(hulizhong2008@163.com)
+History:
++++++++++++++++++++++++++++++++++++++++++++++++++*/
public class JSONHandler {
public void parseJSON(String jsonStr) throws Exception{
//參數(shù)jsonStr的值為{name:'hello',obj:['age','13']}
String name=null,age=null;
JSONObject jSONObject=new JSONObject(jsonStr);
name=(String)jSONObject.get("name");
//name的值應(yīng)是hello
age=((JSONObject)jSONObject.get("obj")).get("age");
//age的值應(yīng)是13
}
}
上面的程序就完成了服務(wù)器端對(duì)客戶端發(fā)送json數(shù)據(jù)的解析工作,再獲取name,age值后,即可進(jìn)行其它業(yè)務(wù)邏輯處理!
2,服務(wù)器向客戶端發(fā)送json數(shù)據(jù)
package com;
import javax.servlet.http.HttpServletResponse;
import org.json.JSONObject;
/*+++++++++++++++++++++++++++++++++++++++++++++++++
+@author lzh
+Description:
+Copyright:Copyright 2008 HULIZHONG
+Author:lzh(hulizhong2008@163.com)
+History:
++++++++++++++++++++++++++++++++++++++++++++++++++*/
public class JSONResponse {
public void jsonResponse(HttpServletResponse response) throws Exception {
//向客戶端發(fā)送數(shù)據(jù):{name:'hello',obj:['age','13']}
JSONObject obj1 = new JSONObject();
JSONObject obj2 = new JSONObject();
obj2.put("age", "13");
obj1.put("name", "hello");
obj1.put("obj", obj2);
response.setHeader("Cache-Control", "no-cache");
response.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
//obj1.toString()即為{name:'hello',obj:['age','13']}
response.getWriter().print(obj1.toString());
}
}
上述代碼即為完成了服務(wù)端向客戶端發(fā)送json數(shù)據(jù)的解析工作,客戶端在接受{name:'hello',obj:['age','13']}數(shù)據(jù)后
根據(jù)具體業(yè)務(wù)要求進(jìn)行數(shù)據(jù)處理
參考:
www.JSON.org:訪問 JSON Web 站點(diǎn)來進(jìn)一步了解這種數(shù)據(jù)格式,包括到幾種 JSON API 實(shí)現(xiàn)的鏈接
下載附件:
/Files/hulizhong/json.pdf