1. 程式人生 > >JSON解析之JSONObject與JSONArray的使用

JSON解析之JSONObject與JSONArray的使用

public class Student {
	    private String name;  
	    private String gender;  
	    private String address;  
	  
	    public String getName() {  
	        return name;  
	    }  
	  
	    public void setName(String name) {  
	        this.name = name;  
	    }  
	  
	    public String getGender() {  
	        return gender;  
	    }  
	  
	    public void setGender(String gender) {  
	        this.gender = gender;  
	    }  
	  
	    public String getAddress() {  
	        return address;  
	    }  
	  
	    public void setAddress(String address) {  
	        this.address = address;  
	    }  
}
Class類:
public class Class {
	    private String classNum;  
	    private String className;  
	    private String way;  
	    private Student student;
	    private List<Student> students;  
	  
	    public String getClassNum() {  
	        return classNum;  
	    }  
	  
	    public void setClassNum(String classNum) {  
	        this.classNum = classNum;  
	    }  
	  
	    public String getClassName() {  
	        return className;  
	    }  
	  
	    public void setClassName(String className) {  
	        this.className = className;  
	    }  
	  
	    public String getWay() {  
	        return way;  
	    }  
	  
	    public void setWay(String way) {  
	        this.way = way;  
	    }  
	  
	    public List<Student> getStudents() {  
	        return students;  
	    }  
	  
	    public void setStudents(List<Student> students) {  
	        this.students = students;  
	    }

	    public Student getStudent() {
		return student;
	    }

            public void setStudent(Student student) {
		this.student = student;
	    }  
	      
}
序列化和反序列化過程:
public static void main(String[] args){
	Student st = new Student();
	st.setAddress("上海");
	st.setName("wanda");
	st.setGender("男");
		
	Student st1 = new Student();
	st1.setAddress("北京");
	st1.setName("youku");
	st1.setGender("女");
		
	Class cl = new Class();
	cl.setClassName("高三二班");
	cl.setClassNum("2334");
        cl.setStudent(st);
        
        List<Student> list = new ArrayList<Student>(); 
        list.add(st);
        list.add(st1);
        cl.setStudents(list);
        
        // *************JSONObject對實體類進行序列化和反序列化********************************
        // 實體類的序列化:首先對實體類進行序列化成json格式資料,再轉化為字串,該字串一般會發給前端/其他專案
	JSONObject job = JSONObject.fromObject(cl);
	String res = job.toString();
	System.out.println(res);
		
	// 實體類的反序列化:首先將json格式字串轉換為JSONObject物件
	JSONObject js = JSONObject.fromObject(res);
	// 再將JSONObject物件轉換為實體類格式
	Class ne = (Class) JSONObject.toBean(js, Class.class);
	// 檢測一下
	System.out.println(ne.getStudents().toString());
		
	// *************JSONArray對集合進行序列化和反序列化********************************
	// 對集合進行序列化:首先對集合進行序列化成JSONArray格式資料,再轉化為字串
	JSONArray ja = JSONArray.fromObject(list);
	String liststr = ja.toString();
	System.out.println(liststr);
		
	// 反序列化:如果集合儲存的是bean類,需要指定class屬性
	JSONArray ss = JSONArray.fromObject(liststr);
	Student[] s = (Student[]) JSONArray.toArray(ss, Student.class);
	System.out.println(s.toString());
	}