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 |