JSON幾種轉換方法
1、 首先創建一個web程序,
在domain包下創建Student 和 Teacher 類。 在Teacher.java中封裝name,sex,age,birth屬性,並實現 其構造器 set和get方法,以及toString()方法。
2、 在junit包下創建一個測試類 。 用來進行測試。
Demo.java
//第一個案例:將Java對象轉換成Json字符串
@Test
public void fromObject(){
//將Java對象轉換成Json字符串
Teacher teacher = new Teacher();
teacher.setName("redmary");
teacher.setSex("男");
teacher.setAge(21);
teacher.setBirth(new Date());
//json字符串
/*
* {name:"redarmy",sex:"男",age:21,birth:{對象}
* */
//需要引入類庫文件
//調用JSONObject.fromObject(object)完成轉換
System.out.println(JSONObject.fromObject(teacher).toString());
}
//第二個案例:將Java集合轉換成Json字符串
@Test
public void fromVector(){
List<Teacher> teas = new ArrayList<Teacher>();
for(int i=0;i<3;i++){
Teacher teacher = new Teacher();
teacher.setName("redmary");
teacher.setSex("男");
teacher.setAge(21);
teacher.setBirth(new Date());
teas.add(teacher);
}
//調用JSONArray.fromObject(object)完成轉換
System.out.println(JSONArray.fromObject(teas).toString());
}
//第三個案例:將JSON字符串轉換成對象
@Test
public void fromJsonObject(){
//第一步:定義出字符串
String teaObj = "{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"}";
//第二步:調用JSONObject.fromObject(teaObj)方法將其字符串轉換成JsonObject對象
JSONObject jsonObj = JSONObject.fromObject(teaObj);
//第三步:調用JSONObject的toBean方法 ,將其轉換成一個Object對象
Teacher teac = (Teacher) JSONObject.toBean(jsonObj,Teacher.class);
System.out.println(teac.toString());
}
//第四個案例:將數組的字符串轉換成集合對象
@Test
public void fromJsonArray(){
//第一步:聲明出字符串
String teaArr = "[{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"},{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"},{\"age\":21,\"birth\":{\"date\":28,\"day\":2,\"hours\":9,\"minutes\":31,\"month\":1,\"seconds\":38,\"time\":1330392698421,\"timezoneOffset\":-480,\"year\":112},\"name\":\"redmary\",\"sex\":\"男\"}]";
//第二步:調用JSONArray.fromObject(teaArr)方法將其字符串轉換成一個JsonArray對象
JSONArray jsonArra = JSONArray.fromObject(teaArr);
//第三步:調用JSONArray的toCollection方法將其轉換成指定泛型的List集合對象
List<Teacher> teas = (List<Teacher>) JSONArray.toCollection(jsonArra,Teacher.class);
for(Teacher tea:teas){
System.out.println(teas.toString());
}
}
//第五個案例:將Java對象轉換成Json字符串
@Test
public void fromObject1(){
//將Java對象轉換成Json字符串
Teacher teacher = new Teacher();
teacher.setName("redmary");
teacher.setSex("男");
teacher.setAge(21);
teacher.setBirth(new Date());
//json字符串
/*
* {name:"redarmy",sex:"男",age:21,birth:{對象}
* */
List<Student> stus = new ArrayList<Student>();
for(int i=0;i<3;i++){
Student stu = new Student();
stu.setName("pangli"+i);
stus.add(stu);
}
teacher.setStus(stus);
//需要引入類庫文件
//調用JSONObject.fromObject(object)完成轉換
System.out.println(JSONObject.fromObject(teacher).toString());
}