ObjectMapper 란?
Text JSON -> Object
Object -> Text JSON
폴더/파일위치
ObjectMapperApplicationTest.java
package com.example.objectmapper;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
@SpringBootTest
class ObjectMapperApplicationTests {
@Test
void contextLoads() throws JsonProcessingException{
System.out.println("---------test--------");
// Text JSON -> Object
// Object -> Text JSON
// controller req json (text) - object
// response object -> json(text)
var objectMapper = new ObjectMapper();
// 1. object -> text
// object mapper가 get method를 활용한다.
var user = new User("hyeri", 30, "010-1111-2222");
var text = objectMapper.writeValueAsString(user);
System.out.println(text);
//2. text -> object
// object mapper는 defalut 생성자를 필요로 한다.
// 생성자 오버로딩을 했기 때문에, 디폴트 생성자가 없어도 됬었으나 object를 만들기 위해 디폴트 생성자를 꼭 추가해야한다.
var objectUser = objectMapper.readValue(text,User.class);
System.out.println(objectUser);
}
}
User.java
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(String name, int age, String phonenumber) {
this.name = name;
this.age = age;
this.phoneNumber = phonenumber;
}
//디폴드생성자 추가
public User() {
this.name = null;
this.age = 0;
this.phoneNumber = null;
}
// getter 추가
public String getName() {
return name;
}
public String getPhoneNumber() {
return phoneNumber;
}
public int getAge() {
return age;
}
public User defaultUser() {
return new User("default", 30, "010-111-2222");
}
@Override
public String toString() {
return "User [name=" + name + ", age=" + age + ", phoneNumber=" + phoneNumber + "]";
}
}