关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

云南大王-使用Fastjson实现JSON与JavaBean之间互相转换

发布时间:2020-04-13 00:00:00
原文链接:http://www.yiidian.com/fastjson/fastjson-json-javabean.html 1 简单JSON与JavaBean的转换 1.1 设计Student实体类 package com.yiidian.domain; /** * 一点教程网 - http://www.yiidian.com */ public class Student { private String studentName; private Integer studentAge; public Student() { } public Student(String studentName, Integer studentAge) { this.studentName = studentName; this.studentAge = studentAge; } public String getStudentName() { return studentName; } public void setStudentName(String studentName) { this.studentName = studentName; } public Integer getStudentAge() { return studentAge; } public void setStudentAge(Integer studentAge) { this.studentAge = studentAge; } @Override public String toString() { return "Student{" + "studentName='" + studentName + '\'' + ", studentAge=" + studentAge + '}'; } } 1.2 简单JSON转为JavaBean MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONObject; import com.yiidian.domain.Student; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ String JSON_OBJ_STR = "{\"studentName\":\"lily\",\"studentAge\":12}"; Student student = JSONObject.parseObject(JSON_OBJ_STR, Student.class); System.out.println(student); } } 运行效果为: Student{studentName='lily', studentAge=12} 1.3 JavaBean转为简单JSON MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONObject; import com.yiidian.domain.Student; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ Student student = new Student("lily", 12); String jsonString = JSONObject.toJSONString(student); System.out.println(jsonString); } } 运行效果为: {"studentAge":12,"studentName":"lily"} 2 JSON数组与JavaBean的转换 2.1 JSON数组转为JavaBean MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONArray; import com.yiidian.domain.Student; import java.util.List; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ String JSON_ARRAY_STR = "[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]"; List studentList = JSONArray.parseArray(JSON_ARRAY_STR, Student.class); System.out.println("studentList: " + studentList); } } 运行结果为: studentList: [Student{studentName='lily', studentAge=12}, Student{studentName='lucy', studentAge=15}] 2.2 JavaBean转为JSON数组 MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONArray; import com.yiidian.domain.Student; import java.util.ArrayList; import java.util.List; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ Student student = new Student("lily", 12); Student studenttwo = new Student("lucy", 15); List students = new ArrayList(); students.add(student); students.add(studenttwo); String jsonString = JSONArray.toJSONString(students); System.out.println(jsonString); } } 运行效果为: [{"studentAge":12,"studentName":"lily"},{"studentAge":15,"studentName":"lucy"}] 3 复杂JSON与JavaBean的转换 3.1 设计Course实体类 package com.yiidian.domain; import java.util.List; /** * 一点教程网 - http://www.yiidian.com */ public class Course { private String courseName; private String code; public String getCourseName() { return courseName; } public void setCourseName(String courseName) { this.courseName = courseName; } public String getCode() { return code; } public void setCode(String code) { this.code = code; } @Override public String toString() { return "Course{" + "courseName='" + courseName + '\'' + ", code='" + code + '\'' + '}'; } } 3.2 设计Teacher实体类 package com.yiidian.domain; import java.util.List; /** * 一点教程网 - http://www.yiidian.com */ public class Teacher { private String teacherName; private Integer teacherAge; private Course course; private List students; public String getTeacherName() { return teacherName; } public void setTeacherName(String teacherName) { this.teacherName = teacherName; } public Integer getTeacherAge() { return teacherAge; } public void setTeacherAge(Integer teacherAge) { this.teacherAge = teacherAge; } public Course getCourse() { return course; } public void setCourse(Course course) { this.course = course; } public List getStudents() { return students; } public void setStudents(List students) { this.students = students; } @Override public String toString() { return "Teacher{" + "teacherName='" + teacherName + '\'' + ", teacherAge=" + teacherAge + ", course=" + course + ", students=" + students + '}'; } } 3.3 复杂JSON转为JavaBean MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yiidian.domain.Student; import com.yiidian.domain.Teacher; import java.util.ArrayList; import java.util.List; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ String COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}"; Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, Teacher.class); System.out.println(teacher); } } 运行效果为: Teacher{teacherName='crystall', teacherAge=27, course=Course{courseName='english', code='1270'}, students=[Student{studentName='lily', studentAge=12}, Student{studentName='lucy', studentAge=15}]} 3.3 JavaBean转为复杂JSON MainApp: package com.yiidian.fastjson; import com.alibaba.fastjson.JSONObject; import com.yiidian.domain.Teacher; /** * 一点教程网 - http://www.yiidian.com */ public class MainApp { public static void main(String args[]){ String COMPLEX_JSON_STR = "{\"teacherName\":\"crystall\",\"teacherAge\":27,\"course\":{\"courseName\":\"english\",\"code\":1270},\"students\":[{\"studentName\":\"lily\",\"studentAge\":12},{\"studentName\":\"lucy\",\"studentAge\":15}]}"; Teacher teacher = JSONObject.parseObject(COMPLEX_JSON_STR, Teacher.class); String jsonString = JSONObject.toJSONString(teacher); System.out.println(jsonString); } } 运行效果为: {"course":{"code":"1270","courseName":"english"},"students":[{"studentAge":12,"studentName":"lily"},{"studentAge":15,"studentName":"lucy"}],"teacherAge":27,"teacherName":"crystall"} 欢迎关注我的公众号::一点教程。获得独家整理的学习资源和日常干货推送。 如果您对我的系列教程感兴趣,也可以关注我的网站:yiidian.com

/template/Home/Zkeys/PC/Static