개발공부/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);
}
}
= ======= 출력화면 ======= =