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 fs = new ArrayList();
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 friends = (List)JSONArray.
toCollection(jsonArr, Friend.class);
for(Friend f :friends){
System.out.println(f);
}
}
public static void main(String[] args) {
//test1();
//test2();
//test3();
test4();
}
}