-
스프링에서 Jackson 형태로 반환하는 법spring/스프링 입문 주차 2024. 1. 18. 09:59
자바는 직접적으로 Jackson 문법을 가지고 있지 않기 때문에, 직접적으로 Json형태로 반환하고 싶다면
아래와 같은 String형태로 반환해야 한다.
public String helloStringJson() { return "{\"name\":\"Robbie\",\"age\":95}"; }
객체를 반환하면 자동으로 json 형태로 반환 해 주기도 한다.
public Star helloClassJson() { return new Star("Robbie", 95); }
객체를 반환하는 것이 당연히 더 편해보이지만, 둘다 사용할 일이 있다고 하니 기억하도록 하자.
Object 타입을 json 타입으로 변환하는 방법
@Test @DisplayName("Object To JSON : get Method 필요") void test1() throws JsonProcessingException{ Star star = new Star("Robbie", 95); ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper String json = objectMapper.writeValueAsString(star); System.out.println("json = " + json); }
json 타입을 Object 타입으로 변환하는 방법
@Test @DisplayName("JSON To Object : 기본 생성자 & (get OR set) Method 필요") void test2() throws JsonProcessingException { String json = "{\"name\":\"Robbie\",\"age\":95}"; // JSON 타입의 String ObjectMapper objectMapper = new ObjectMapper(); // Jackson 라이브러리의 ObjectMapper Star star = objectMapper.readValue(json, Star.class); System.out.println("star.getName() = " + star.getName()); }
json 타입으로 문자열을 저장할 땐, key값을 객체의 필드와 정확하게 일치하지 않으면 에러가 난다.
또한 @DisplayName에 적어 놓았듯이, 기본 생성자, getter, setter 의 유무에 따라 에러가 나는 경우도 있다는걸 명심하자.
@Getter public class Star { String name; int age; public Star(String name, int age) { this.name = name; this.age = age; } public Star() {} }
'spring > 스프링 입문 주차' 카테고리의 다른 글
HTTP 데이터를 객체로 처리하는 방법 (0) 2024.01.18 PathVariable과 ReqestParam (0) 2024.01.18 Controller 이해하기 (0) 2024.01.17 스프링 MVC란? (0) 2024.01.17 간단한 Postman 사용법 (0) 2024.01.17