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 |