Jackson 이란?
Java Object를 JSON으로 변환하거나 JSON을 Java Object로 변환하는데 사용할 수 있는 Java 라이브러리이다.
Jackson databind 이용한 마샬링 util
라인1.
req에 저장되어있는 attribute들의 이름을 가져온다.
-> 마샬링할 객체 꺼내기 위해
라인2.
json형태의 패턴 설정
라인3.
json은 키,값의 쌍으로 되어있음 -> map과 비슷
라인22~26
어트리뷰트에 저장되있는 값이 있을때까지 꺼내서 json의 키, 값을 만들고 맵에 저장
라인28
ObjectMapper객체 - 마샬링(write), 언마샬링(read)할 수 있는 메서드를 제공한다.
라인29
맵에 저장한 객체를 write메서드를 통해 마샬링 할 수 있지만 어트리뷰트에 있는 모든 것을 읽어서 맵에 넣었기 때문에 마샬링 하고싶은 객체 말고 다른값들도 들어있음
->원하는 것만 빼서 마샬링해야됨
라인30~33
만약 응답데이터의 contentType이 json으로 셋팅이 안되어있으면 셋팅해준다.
라인35~38
응답데이터를 내보내기 위해 스트림객체 생성. 쓴다는 것은 응답페이지에 뭘 쓴다는게 아니라 응답데이터를 내보낸다는 것 -> 마샬링된 객체 내보낸다.
mapper.writeValue(out, dataMap) - 마샬링과 직렬화를 한번에 해준다.
질문!!!
29라인에서 마샬링되는 대상 뽑아야된다고 했는데 여기에 뽑는 코드 어디???
사용예
주석이랑 util클래스 쓴거랑 똑같은 것