json 按照我的了解來說,就是一個字串表,可以用來表示對象的字元串,也可以用來表示數組。它比 xml 檔案節省了很多标簽的内容。
關于什麼是 json,在這裡我們就不過多介紹了。
Json-lib 是一個 Java 類庫(官網:http://json-lib.sourceforge.net/)可以實作如下功能:
1、轉換 javabeans、maps、collections、 Java arrays 和 XML 成為 json 格式資料:
2、轉換 json 格式資料成為 javabeans 對象。
Json-lib 的 jar 包貌似不太好找,我在這裡提供了一個版本,僅供參考。不過個人建議,還是從官網下載下傳 jar 包會好一點,畢竟這也是一種能力。
Json-lib的基本jar包.rar
Json-lib 需要的 jar 包:
(1)commons-beanutils-1.8.3.jar
(2)commons-collections-3.2.1.jar
(3)commons-lang-2.6.jar
(4)commons-logging-1.1.1.jar
(5)ezmorph-1.0.6.jar
(6)json-lib-2.4-jdk15.jar
第一部分:将 Java 對象轉換成 JSON 格式(字元串)
1、處理多個對象(數組、集合 List 或者 Set)
将“數組”類型的對象轉換成 JSON 格式
JSONArray.fromObject(傳入一個“數組”類型的對象);
說明:這裡的數組對象可以是 Array、對象數組,集合類(Set集合);
2、處理單個對象(Map 或者 JavaBean)
将 Map類型的對象,或者單個的 JavaBean 或者嵌套的對象轉換成 JSON 格式;
JSONObject.fromObject(傳入一個 Map類型的對象,或者單個的 JavaBean 或者嵌套的對象);
3、使用 JsonConfig 過慮屬性:适用于 JavaBean、Map;
示例代碼:
JsonConfig config = new JsonConfig();
config.setExcludes(new String[] { "name" }); // 指定在轉換時不包含哪些屬性
Person person = new Person("A001", "Jack");
SONObject jsonObject = JSONObject.fromObject(person, config); // 在轉換時傳入之前的配置對象
System.out.println(jsonObject);
第二部分:将 JSON 格式(字元串)的資料轉換成 Java 對象
1、處理多個對象
将 JSON 格式的字元串轉換成 Array:
JSONArray jsonArray = JSONArray.fromObject("[89,90,99]");
Object array = JSONArray.toArray(jsonArray);
System.out.println(array);
System.out.println(Arrays.asList((Object[]) array));
2、處理單個對象
将 Json 串轉成 JavaBean 和 Map:
核心的方法:
(1)将 Json 形式的字元串轉換為 Map:
JSONObject jsonObject = JSONObject.fromObject(str);
Map<String, Object> map = (Map<String, Object>) JSONObject.toBean(jsonObject, Map.class);
(2)将 Json 形式的字元串轉換為 JavaBean:
jsonObject = JSONObject.fromObject(str);
Person person = (Person) JSONObject.toBean(jsonObject, Person.class);
注意:在将 Json 形式的字元串轉換為 JavaBean 的時候需要注意 JavaBean 中必須有無參構造函數,否則會報找不到初始化方法的錯誤。
參考資料:
1、Json 和 Jsonlib 的使用 - sunzn - 部落格園
http://www.cnblogs.com/sunzn/archive/2013/02/12/2910241.html
說明:可以作文入門級别的使用教程,本身 Json-lib 就不難。
2、
JSON-lib架構,轉換JSON、XML不再困難 - hoojo - 部落格園
http://www.cnblogs.com/hoojo/archive/2011/04/21/2023805.html
3、
java對象與json對象間的互相轉換 - gchb9527的專欄 - 部落格頻道 - CSDN.NET
http://blog.csdn.net/gchb9527/article/details/8688279
4、
Json lib 教程 - OPEN 開發經驗庫
http://www.open-open.com/lib/view/open1326597921734.html
5、