Spring - ObjectMapper

 

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("hello");

        // Object Mapper의 역할
        // Text를 Object 로 Object를 text로 바꾸어줌

        // ex) controller에서 request에서 json이 들어오면 자동적으로  -> Object로 바꾸어주었고
        // respnse에서 Object가 들어오면 자동적으로 json으로 바꾸어주고 있는데 이것이  Object Mapper의 역할이다.

        var objectMapper = new ObjectMapper();

        // object -> text
        // object에서 text로 바뀔 때는 Object Mapper가 get Method를 활용하기 때문에 getter를 만들어줘야한다.
        var user = new User("wooseok", 10, "010-3644-5732");
        var text = objectMapper.writeValueAsString(user);
        System.out.println(text);

        // text -> object
        // 2번째로 object Mapper는 text에서 object로 바꿀 때 기본생성자를 생성해주기 때문에
        // 기본생성자가 없는 경우(생성자오버로딩한경우)라면 기본생성자를 만들어주어야 한다.
        var objectUser = objectMapper.readValue(text,User.class);
        System.out.println(objectUser);

        //이외에도 내가 사용하고자하는 객체가 objectMapper를 사용하게되면 메소드명 앞에 get들어가면 오류를 발생시킬 수 있다.

    }

}

 

package com.example.objectmapper;

import com.fasterxml.jackson.annotation.JsonProperty;

public class User {
    private String name;
    private int age;

    public String getPhoneNumber() {
        return phoneNumber;
    }

    @JsonProperty("phone_number")
    private String phoneNumber;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    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;

    }

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

}

'Spring' 카테고리의 다른 글

Spring - DI (의존성 주입) 이란 무엇인가?  (0) 2022.01.11
Spring - 왜 Spring을 쓰는가?  (0) 2022.01.11
URI vs URL 개념정리  (0) 2022.01.06
REST API란 무엇인가?  (0) 2022.01.06
POJO의 특징  (0) 2022.01.06