The use of JSON in springboot2 (official website learning)

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 + '\'' +
                '}';
    }
}

Guess you like

Origin blog.csdn.net/Java_Fly1/article/details/124294990