前景引入
有时我们想把Java对象直接存储到数据库,或者想将前端传递过来的对象转换为Java对象。如果不想手动转换就可以调用阿里巴巴的fastjson工具进行转换。
依赖 坐标
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>2.0.42</version>
</dependency>
用法
1. Java对象转化为json
String jsonString = JSONObject.toJSONString(要转换的对象);
2. json转换为Java对象
Student student = JSONObject.parseObject(json,目标Java对象.class);
实体类
package com.xyu.demo1.pojo;
import lombok.*;
@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(of = {"id"})
public class Student {
@NonNull
private Integer id;
private String name;
private Integer age;
}
测试方法
package com.xyu.demo1;
import com.alibaba.fastjson.JSONObject;
import com.xyu.demo1.pojo.Student;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class MyTest {
@Test
void testToJson() {
Student student = new Student();
student.setId(1);
student.setName("李四");
student.setAge(null);
// 将student Java对象-> json
String jsonString = JSONObject.toJSONString(student);
System.out.println(jsonString);
}
@Test
void testToObject() {
String jsonString = "{\"id\":2001,\"name\":\"李四\",\"age\":20}";
Student student = JSONObject.parseObject(jsonString, Student.class);
// System.out.println(student);
System.out.println("student = " + student);
}
}
输出结果
在 testToJson 中 我们创建了一个java对象并初始化一些属性,并用 JSONObject.toJSONString() 方法转换并输出
在testToObject 中创建一个json 转换为Java对象并输出