728x90
ObjectMapper
Request한 데이터를 객체 형태나 텍스트 형태로 변경하는 메소드를 소개하려고 합니다.
ObjectMapper를 이용해서 JSON 데이터를 Object로 변환할 수 있으며, 반대로 Object를 JSON으로 변환할 수 있습니다.
@RestController
@RequestMapping("/api/objectMapper")
public class ObjectMapperController {
@PostMapping("")
public void objectMapper(@RequestBody String name) throws JsonProcessingException {
// Text JSON -> Object
// Object -> Text JSON
ObjectMapper objectMapper = new ObjectMapper();
// object -> text
// object mapper get method를 활용한다.
User user = new User("steve", 10, "010-0000-0000");
String text = objectMapper.writeValueAsString(user);
System.out.println(text);
// text -> object
// object mapper는 default 생성자가 필요하다.
User objectUser = objectMapper.readValue(text, User.class);
System.out.println(objectUser);
System.out.println(objectUser.getAge());
}
...
}
writeValueAsString 메소드
ObjectMapper의 writeValueAsString 메소드는 객체를 text로 변환할 때 사용하는 메소드입니다.
request 파라미터로 객체를 받거나 생성된 객체를 text(string)으로 변경할 경우 유용하게 사용할 수 있는 메소드입니다.
readValue 메소드
ObjectMapper의 readValue 메소드는 텍스트를 객체로 변환할 때 사용하는 메소드입니다.
객체를 만들 수 있는 리터럴(literal) 형식의 텍스트와 만들고 싶은 객체의 DTO를 readValue 메소드의 인자로 받으면 객체의 형태로 만들 수 있습니다.
여기서 주의할 점은 만들고 싶은 객체의 DTO에 반드시 디폴트 생성자가 필요합니다.
또한 readValue 메소드 사용 시 예외처리를 하셔야합니다.
DTO 클래스 예시
// User.java
public class User {
private String name;
private int age;
private String phoneNumber;
public User(String name, int age, String phoneNumber) {
this.name = name;
this.age = age;
this.phoneNumber = phoneNumber;
}
public User() {
this.name = "drfualt";
this.age = 0;
this.phoneNumber = "010";
}
public User defaultUser() {
return new User("default", 0, "010");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNumber() {
return phoneNumber;
}
public void setPhoneNumber(String phoneNumber) {
this.phoneNumber = phoneNumber;
}
}
다음 포스팅에서는 ObjectMapper에서 사용하는 JsonNode, ObjectNode, ArrayNode에 대해서 살펴보겠습니다.
https://getthismoment.tistory.com/82
728x90
'Java' 카테고리의 다른 글
Java - ObjectMapper의 JsonNode, ObjectNode, ArrayNode (0) | 2021.09.07 |
---|---|
java - RequestHeader (0) | 2021.08.31 |
java - PUT API (0) | 2021.08.26 |
java - POST API (0) | 2021.08.26 |
java - GET API (0) | 2021.08.26 |
댓글