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都需要添加依賴包,網上有很多,就不列舉了。(順便偷個懶大笑


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章