The use of JSON in springboot2
Introduction
Spring Boot provides integration with three JSON mapping libraries. Gson, Jackson, and JSON-B
Jackson are integrated by default
Jackson
Jackson's conversion is realized through the ObjectMapper object. Spring boot automatically configures an ObjectMapper object.
Jackson uses ObjectMapper to serialize java objects. The java class must have a default no-argument constructor
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class LawController {
@RequestMapping("/test")
public String test() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
User user = new User("jerry", 1);
// 序列化
String json = objectMapper.writeValueAsString(user);
// 返回{"name":"jerry","id":1}
return json;
}
@RequestMapping("/test2")
public User test2() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
String json="{\"name\":\"jerry\",\"id\":1}";
// 反序列化
User user = objectMapper.readValue(json, User.class);
// 返回 {"name":"jerry","id":1}
return user;
}
}
class User {
private String name;
private int id;
public User(){
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public User(String name, int id) {
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", id=" + id +
'}';
}
}
Open a browser to visit http://localhost:8080/test, output {"name":"jerry", "id":1}; open a browser to visit
http://localhost:8080/test2, output {"name" :"jerry", "id":1};
GSON
Add maven dependency
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.9.0</version>
</dependency>
java code
import com.google.gson.Gson;
@SuppressWarnings({
"all"})
public class GsonController {
public static void main(String[] args) {
Gson gson=new Gson();
Student student=new Student("er","1");
// 序列化,Student对象转换成json字符串
String json=gson.toJson(student);
System.out.println(json);//输出{"name":"er","no":"1"}
// 反序列化,json字符串转换成Student对象
Student student1=gson.fromJson(json,Student.class);
System.out.println(student1);//输出Student{name='er', no='1'}
}
}
class Student{
private String name;
private String no;
public Student(String name, String no) {
this.name = name;
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", no='" + no + '\'' +
'}';
}
}