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();
}
}
