개발공부/Spring Boot

[Spring Boot] Object Mapper

환타몬 2022. 2. 10. 11:20

- User.java

package com.example.objectmapper;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

public class User {

    private String name;
    private int age;

    @JsonProperty("phone_number")
    private String phoneNumber;

    public User(){
        this.name = null;
        this.age = 0;
        this.phoneNumber = null;
    }

    public User(String name, int age, String phoneNumber){
        this.name = name;
        this.age = age;
        this.phoneNumber = phoneNumber;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public User DefaultUser(){
        return new User("default",0,"000-0000-0000");
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", phoneNumber='" + phoneNumber + '\'' +
                '}';
    }
}

 

- ObjectMapperApplicationTests.java

package com.example.objectmapper;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class ObjectMapperApplicationTests {

    @Test
    void contextLoads() throws JsonProcessingException {
        System.out.println("=============");

        // 오브젝트매퍼는 Text JSON -> Object
        // Object -> Text JSON

        // controller req json(text) -> object
        //response object -> json(text)

        var objectMapper = new ObjectMapper();

        // object -> text
        // object mapper get method를 활용한다.
        // get을 사용을 할 때, 본인이 작성한 클래스가 object mapper에서 활용이 된다면
        //반드시 메소드 명에서 get 을 제외할 것. ( 오류 발생 )
        var user = new User("stve", 10, "010-0000-0000");
        var text = objectMapper.writeValueAsString(user);
        System.out.println(text);


        // text -> object
        // object mapper 는 default 생성자를 필요로 한다.
        var objectUser = objectMapper.readValue(text,User.class);
        System.out.println(objectUser);
    }

}

 

= =======  출력화면  ======= =