ObjectMapper调用
添加pom依赖
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.3</version>
</dependency>
常用方法
1、 readValue(json字符串数据,Class) json转换为java对象
2、 writeValue(参数1,obj):
参数1:
File:将obj对象转换为JSON字符串,并保存到指定的文件中
Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
3、 writeValueAsString(obj):将对象转为json字符串
一、普通对象转为json:
1、实现效果
2、实体类
public class Student {
private String name;
private String sex;
private String age;
public Student(String name, String sex, String age) {
this.name = name;
this.sex = sex;
this.age = age;
}
public Student() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
3、实现类
public class Test {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
// 简单对象转为json
Student student = new Student();
student.setName("苏博宇");
student.setSex("男");
student.setAge("22");
String value = mapper.writeValueAsString(student);
System.out.println(value);
}
}
二、复杂对象转为json:
1、实现效果
2、实体类
import java.util.List;
public class Teacher {
private String name;
private String sex;
private String age;
private List<Infor> infor;
public static class Infor{
private String key;
private String value;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public Infor(String key, String value) {
this.key = key;
this.value = value;
}
}
private Exam exam;
public static class Exam{
private String math;
private String physical;
private String chemistry;
public String getMath() {
return math;
}
public void setMath(String math) {
this.math = math;
}
public String getPhysical() {
return physical;
}
public void setPhysical(String physical) {
this.physical = physical;
}
public String getChemistry() {
return chemistry;
}
public void setChemistry(String chemistry) {
this.chemistry = chemistry;
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public List<Infor> getInfor() {
return infor;
}
public void setInfor(List<Infor> infor) {
this.infor = infor;
}
public Exam getExam() {
return exam;
}
public void setExam(Exam exam) {
this.exam = exam;
}
}
3、实现类
public class Test {
public static void main(String[] args) throws JsonProcessingException {
ObjectMapper mapper = new ObjectMapper();
// 复杂对象转为json
Teacher teacher = new Teacher();
teacher.setName("赵国怡");
teacher.setSex("女");
teacher.setAge("22");
// 嵌套的数组
ArrayList<Teacher.Infor> list = new ArrayList<>();
list.add(new Teacher.Infor("address","default"));
list.add(new Teacher.Infor("phone","default"));
// 嵌套的json
Teacher.Exam exam = new Teacher.Exam();
exam.setMath("80");
exam.setPhysical("90");
exam.setChemistry("85");
// 最后给嵌套的数组和json进行赋值
teacher.setInfor(list);
teacher.setExam(exam);
String valueAsString = mapper.writeValueAsString(teacher);
System.out.println(valueAsString);
}
}