首先用maven引入fastjso
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
1.JSON.toJSONString:(对象–>JSON字符串)
对象--------------------->string
Student student = new Student(1,"张三","[email protected]",19);//Lombok中只有无参构造,这种需要重写有参构造方法
List<Student> studentList = new ArrayList<>();
studentList.add(student);
String jsonString = JSON.toJSONString(studentList);
System.out.println("student对象集合:"+student);
System.out.println("json字符串:"+jsonString);
输出:
student对象集合:Student(id=1, name=张三, email=zhangsan@qq.com, age=19)
json字符串:[{
"age":19,"email":"[email protected]","id":1,"name":"张三"}]
2.JSON.parseArray:(Json字符串–>集合)
string------------------------------->集合
String jsonString = "[{age:19,email:'[email protected]',id:1,name:'张三'}]";
List<Student> studentList = JSON.parseArray(jsonString, Student.class);
System.out.println(studentList);
输出为:
[Student(id=1, name=张三, email=zhangsan@qq.com, age=19)]
3.JSON.parseObject:(Json字符串–>对象)
string-------------------->对象中有集合
Class 实体:
@Data
public class Class {
private int classNo;
private String className;
private List<Student> studentList;
}
Student 实体
@Data
public class Student {
private Integer id;
private String name;
private Integer age;
}
JSON.parseArray方法:
String str = "{classNo:'01',className:'一班',studentList:[{id:1,name:'张三',age:01},{id:2,name:'李四',age:01},{id:3,name:'王五',age:01}]}";
Class aClass = JSON.parseObject(str, Class.class);
System.out.println("Class班级:" + aClass);
System.out.println("student学生:"+aClass.getStudentList());
输出:
Class班级:Class(classNo=1, className=一班, studentList=[Student(id=1, name=张三, age=1), Student(id=2, name=李四, age=1), Student(id=3, name=王五, age=1)])
student学生:[Student(id=1, name=张三, age=1), Student(id=2, name=李四, age=1), Student(id=3, name=王五, age=1)]