Jackson 라이브러리를 사용해 HashMap 객체를 return 하면 Content-Type이 application/json인 포맷으로 반환 된다.
하지만 org.JSON 라이브러리를 사용해 JSONObject 객체를 return 하면 406 에러가 뜬다. 그래서 JSONObject 객체를 toString()을 적용해 반환해야 한다. 하지만 이렇게 반환을 하게 되면 Content-Type이 text/plain이다.
이렇게 되면 ajax를 사용했을 때
<script>
$.ajax({
type: "POST",
url: "/check-dup",
contentType: "application/json",
data: JSON.stringify({
username: username
}),
success: function (response) {
response = JSON.parse(response);
// 로직 생략
}
});
</script>
response = JSON.parse(response)처럼 JSON 문자열을 객체로 변환해야 하는 작업이 필요하다.
하지만 Jackson을 사용하면 Content-Type이 application/json인 포맷으로 반환할 수 있다 !
나는 org.JSON 사용했었다.
구글에서 만든 GSON이 org.JSON보다 훨씬 더 많은 기능을 지원해주는 것도 알 수 있었다. 하지만 Jackson은 GSON보다 더 많은 기능을 지원한다!! 그래서 스프링이 Jackson을 밀어주는 건가...
나중에 https://mommoo.tistory.com/83 이거 보고 더 공부해야지...