Json-lib 是什嗎?
官方解釋是:JSON-lib is a java library for transforming beans, maps, collections, java arrays and XML to JSON and back again to beans and DynaBeans.
其實就是實現json 格式與java 類對象的互轉。 在Java代碼中可以很簡單的解析json格式的資料。
什麼狀況下使用Json-lib?
Java代碼中要解析JSON格式的字串,
1. 比如通過Ajax擷取的,或是從其他介面中過來的json 格式的字串;
2. 想傳遞一串很複雜的字串給Java代碼處理(比如使用applet 讀取檔案裡面的內容)。 當然這種方式你可以自己寫規則去解析,頻繁的使用split,而且要處理好特殊字元。估計得頭大。
怎麼開始使用Json-lib?
官方網址: http://json-lib.sourceforge.net/
需要準備的jar包
1. json-lib-2.4-jdk15.jar 目前最新版,
http://sourceforge.net/projects/json-lib/files/
2. HttpClient 用來提供高效的、最新的、功能豐富的支援 HTTP 協議的用戶端編程工具包 。 http://hc.apache.org/downloads.cgi
3. commons Lang 這一組API是提供一些基礎的、通用的操作和處理,如自動產生toString()的結果 。 http://commons.apache.org/lang/download_lang.cgi
4. Commons Logging Apache通用日誌工具 http://commons.apache.org/logging/download_logging.cgi
5. Commons Collections 為Java標準的Collections API提供了相當好的補充 http://commons.apache.org/collections/download_collections.cgi
6. Commons BeanUtils 利用反射機制對JavaBean的屬性進行處理
http://commons.apache.org/beanutils/download_beanutils.cgi
7. EZMorph 是一個簡單的java類庫用於將一種對象轉換成另外一種對象 http://sourceforge.net/projects/ezmorph/files/
執行個體展示
java Object ==> json
1. java Array ==>json string
String[] strArry = new String[]{"oscar1","oscar2","oscar3"};JSONArray jsArray = JSONArray.fromObject(strArry);String sJSONStr1 = jsArray.toString();System.out.println(sJSONStr1);
==>["oscar1","oscar2","oscar3"]
2. java List ==> json string
List<String> list = new ArrayList<String>();list.add("id");list.add("name");JSONArray jsArray = JSONArray.fromObject(list);String sJSONStr = jsArray.toString();System.out.println(sJSONStr);
==> ["id","name"]
3. Java Map ==> json string
Map<String,Object> map = new HashMap<String,Object>();map.put("id", 1);map.put("name", "Oscar");JSONObject json = JSONObject.fromObject(map);String sJSONStr1 = json.toString();System.out.println(sJSONStr1);
==> {"id":1,"name":"Oscar"}
4. use JSONObject and JSONarray ==> json string
JSONObject jsobj = new JSONObject();jsobj.put("id", 1);jsobj.put("name", "oscar");JSONArray jsArray = new JSONArray();JSONObject jsobj2 = new JSONObject();jsobj2.put("day1", "65");jsobj2.put("day2", "66");jsArray.add(jsobj2);jsobj.element("weight", jsArray);String sJSONStr = jsobj.toString();System.out.println(sJSONStr);
{"id":1,"name":"oscar","weight":[{"day1":"65","day2":"66"}]}