4 Java對象轉換成JSON
4.1 問題
將Java對象轉換成符合JSON格式的字符串,並測試。
4.2 方案
使用與json-lib.jar相關的jar文件完成類型的轉換。
4.3 步驟
步驟一:新建實體類Friend

圖- 15
步驟二:新建JSONTest類
在該類中添加四個方法,分別用於測試Java對象轉換為JSON字符串,Java數組轉換為JSON字符串,JSON字符串轉換為Java對象,JSON字符串轉換為Java數組。
步驟三:引入jar文件
在添加jar文件的時候,需要導入6個jar文件,缺一不可。如圖-16所示。

圖- 16
步驟四:添加具體的轉換方法:Java對象轉換為JSON字符串

圖- 17
步驟五:運行結果

圖– 18
步驟六:Java數組(集合)轉換為JSON字符串

圖– 19
運行結果:

圖- 20
步驟七:JSON字符串轉換為Java對象

圖– 21
運行結果:

圖- 22
步驟八:JSON字符串轉換為Java數組(集合)

圖– 23
運行結果:

圖- 24
4.4 完整代碼
Friend.java文件代碼如下:
package bean; public class Friend { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String toString() { return this.name + " " + this.age; } }
JSONTest.java文件代碼如下:
package json; import java.util.ArrayList; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import bean.Friend; public class JSONTest { /** * Java對象轉換為JSON字符串 */ public static void test1() { Friend f = new Friend(); f.setName("Zoro"); f.setAge(19); JSONObject jsonObj = JSONObject.fromObject(f); String jsonStr = jsonObj.toString(); System.out.println(jsonStr); } /** * Java數組轉換為JSON字符串 */ public static void test2() { List<Friend> fs = new ArrayList<Friend>(); for (int i = 0; i < 3; i++) { Friend f = new Friend(); f.setName("Zoro" + (i + 1)); f.setAge(19 + i); fs.add(f); } JSONArray jsonArr = JSONArray.fromObject(fs); String jsonStr = jsonArr.toString(); System.out.println(jsonStr); } /** * JSON字符串轉換為Java對象 */ public static void test3(){ String jsonStr = "{\"name\":\"Luffy\",\"age\":17}"; JSONObject jsonObj = JSONObject.fromObject(jsonStr); Friend friend = (Friend)JSONObject. toBean(jsonObj, Friend.class); System.out.println(friend); } /** * JSON字符串轉換為Java數組 */ public static void test4(){ String jsonStr = "[{\"name\":\"Luffy\",\"age\":17}," + " {\"name\":\"Zoro\",\"age\":19}]"; JSONArray jsonArr = JSONArray.fromObject(jsonStr); List<Friend> friends = (List<Friend>)JSONArray. toCollection(jsonArr, Friend.class); for(Friend f :friends){ System.out.println(f); } } public static void main(String[] args) { //test1(); //test2(); //test3(); test4(); } }