1. 程式人生 > >Json兩種解析方式

Json兩種解析方式

由於json資料格式比較簡單, 易於讀寫,經常用於資訊的互動。

在工作中也會經常使用到json解析,做個總結也算鞏固一下大笑

首先建立一個java bean

Student

public class Student {
private String name;
private String course;
private int grade;
public Student() {
super();
}
public Student(String name,String course,int grade) {
this.name = name;
this.course = course;

this.grade = grade;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
public int getGrade() {
return grade;
}
public void setGrade(int grade) {
this.grade = grade;
}
@Override
public String toString() {
return "Student [name=" + name + ", course=" + course + ", grade=" + grade + "]";
}

}

1. Json資料是一個物件格式時,JSONObject 用於解析一條資料

        @Test
public void jsonObjectTest() {
//json資料
String jsonMsg = "{\"name\":\"Tom\",\"course\":\"English\",\"grade\":100}";
//初始化JSONObject物件
JSONObject jsonObj = JSONObject.fromObject(jsonMsg);
//解析獲取json資料
String name = (String) jsonObj.get("name");
String course = jsonObj.getString("course");
int grade = jsonObj.getInt("grade");
//初始化學生物件
Student stu = new Student(name,course,grade);
//輸出學生物件資訊
System.out.println(stu);

}

2. Json資料是一個數組格式時,JSONArray 用於解析一組資料

        @Test
public void jsonArrayTest() {
//json資料
String jsonMsg = "[{\"name\":\"Tom\",\"course\":\"English\",\"grade\":100},"
+ "{\"name\":\"John\",\"course\":\"English\",\"grade\":98}]";
//初始化JSONArray 物件
JSONArray jsonArray = JSONArray.fromObject(jsonMsg);
//解析後的學生資訊列表
ArrayList <Student> list = new ArrayList<>();
//遍歷JSONArray物件,獲取資料
for(int i=0;i<jsonArray.size();i++) {
JSONObject jsonObj = jsonArray.getJSONObject(i);
String name = jsonObj.getString("name");
String course = jsonObj.getString("course");
int grade = jsonObj.getInt("grade");
//通過json資料初始化學生物件
Student stu = new Student(name,course,grade);
//將學生物件新增到集合中
list.add(stu);
}
//輸出學生物件集合
System.out.println(list);
}

PS:Json解析和Junit都需要新增依賴包,網上有很多,就不列舉了。(順便偷個懶 大笑