개발 공부/Spring

[SpringBoot] Object Mapper

journey 2022. 2. 16. 00:50
728x90

08. 모범사례 - Object Mapper

  • Controller외에 따로 작업을 해야 할 때 사용한다.
  • var objectMapper = new ObjectMapper();
  • Controller request json(text) → Object
  • response Object → json(text)

예제 코드

User

package com.example.objectmapper;

import com.fasterxml.jackson.annotation.JsonProperty;

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;
    }

    private String getPhoneNumber() {
        return phoneNumber;
    }

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    // 오브젝트매퍼가 활용하는 클래스는 get method를 활용한다.
    /* 내가 작성한 클래스가 ObjectMapper에서 활용할 때는 get이라고 붙이면 안된다. get이 메서드명에서 빠져야한다.
    public User getDefaultUser() {
        return new User("default", 0);
    }
     */

    public User defaultUser() {
        return new User("default", 0, "010-9876-5432");
    }

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

ObjectMapperApplicationTests.java

Object를 Json로 변경 할 때

  • Object → Text(Josn)
  • Object Mapper get method를 활용한다.
@SpringBootTest
class ObjectMapperApplicationTests {

    @Test
    void contextLoads() throws JsonProcessingException {

    var user = new User("신짱구", 5, "010-1234-5678");
    var text = objectMapper.writeValueAsString(user);
    System.out.println(text);
    }
}

Json을 Object으로 변경 할 때

  • Text(Json) → Object
  • Object Mapper는 default 생성자를 필요로 한다.
@SpringBootTest
class ObjectMapperApplicationTests {

    @Test
    void contextLoads() throws JsonProcessingException {

    var objectUser = objectMapper.readValue(text, User.class);
    System.out.println(objectUser);
    }
}

결과

'개발 공부 > Spring' 카테고리의 다른 글

[Spring] Annotation  (0) 2022.02.27
[SpringBoot] Validation 사용하기  (0) 2022.02.27
[SpringBoot] Resopnse  (0) 2022.02.16
[SpringBoot] REST API - DELETE  (0) 2022.02.16
[SpringBoot] REST API - PUT  (0) 2022.02.16