在上文中說了json應用的一個簡單過程。在本文中詳細說一個json在服務器端的應用。
json在服務器端應用大致分爲2類:
1,接受並解析客戶端發送給服務器的json數據
2,服務器向客戶端發送json數據
下面分別說一下這2方面的應用:
1,接受並解析客戶端發送給服務器的json數據
如果客戶端發送給服務器的數據是 {name:'hello',obj:['age','13']}
服務器端程序如下:
package com.test;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/*+++++++++++++++++++++++++++++++++++++++++++++++++
+@author lzh
+Description:
+Copyright:Copyright 2008 HULIZHONG
+Author:lzh([email protected])
+History:
++++++++++++++++++++++++++++++++++++++++++++++++++*/
public class JSONHandler {
public void parseJSON(String jsonStr) throws Exception{
//參數jsonStr的值爲{name:'hello',obj:['age','13']}
String name=null,age=null;
JSONObject jSONObject=new JSONObject(jsonStr);
name=(String)jSONObject.get("name");
//name的值應是hello
age=((JSONObject)jSONObject.get("obj")).get("age");
//age的值應是13
}
}
上面的程序就完成了服務器端對客戶端發送json數據的解析工作,再獲取name,age值後,即可進行其它業務邏輯處理!
2,服務器向客戶端發送json數據
package com;
import org.json.JSONObject;
/*+++++++++++++++++++++++++++++++++++++++++++++++++
+@author lzh
+Description:
+Copyright:Copyright 2008 HULIZHONG
+Author:lzh([email protected])
+History:
++++++++++++++++++++++++++++++++++++++++++++++++++*/
public class JSONResponse {
public void jsonResponse(HttpServletResponse response) throws Exception {
//向客戶端發送數據:{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.setContentType("text/plain");
response.setCharacterEncoding("UTF-8");
//obj1.toString()即爲{name:'hello',obj:['age','13']}
response.getWriter().print(obj1.toString());
}
}
上述代碼即爲完成了服務端向客戶端發送json數據的解析工作,客戶端在接受{name:'hello',obj:['age','13']}數據後
根據具體業務要求進行數據處理
參考:
www.JSON.org:訪問 JSON Web 站點來進一步瞭解這種數據格式,包括到幾種 JSON API 實現的鏈接
下載附件:
/Files/hulizhong/json.pdf