JSON解析之JSONObject與JSONArray的使用
阿新 • • 發佈:2019-01-04
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());
}