Object Mapper
14 Oct 2021 -
1 minute read
Object Mapper
-
ObjectMapper는 text 형태의 JSON을 object(객체)로 바꿔주거나 JSON 형태의 obejct를 text로 바꿔줌
-
이전 예제들을 보면 controller에서 request로 json(text) -> object로 바꿔주고, response를 object로 리턴하면 json(text)로 바꿔줬었다!
object를 text로 바꾸기
-
main > java > com.example > object_mapper > User.java
package com.example.object_mapper; public class User { private String name; private int age; public User(){} public User(String name, int age){ this.name = name; this.age = age; } public String getName() { return name; } public int getAge() { return age; } @Override public String toString() { return "User{" + "name='" + name + '\'' + ", age=" + age + '}'; } }
-
test > java > com.example > object_mapper > ObjectMapperApplicationTests.java
package com.example.object_mapper; 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 { var objectMapper = new ObjectMapper(); var user = new User("김이름", 23); var text = objectMapper.writeValueAsString(user); System.out.println(text); } } // 출력 // {"name":"김이름","age":23}
-
var
-
java 10 부터 추가
-
타입 추론 : 개발자가 변수의 타입을 명시적으로 적어주지 않아도 컴파일러가 알아서 변수의 타입을 대입된 리터럴로 추론
-
-
objectmapper는 ‘get method’ 참조!
-
text를 object로 바꾸기
-
test > java > com.example > object_mapper > ObjectMapperApplicationTests.java
package com.example.object_mapper; 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 { var objectMapper = new ObjectMapper(); var objectUser = objectMapper.readValue(text, User.class); // readValue(jsontext, 어떠한클래스타입으로바꿀건지) System.out.println(objectUser); } } // 출력 // User{name='김이름', age=23}
- 이 경우 ‘디폴트 생성자’가 있어야 에러가 나지 않는다