ITWeb/개발일반

[Jackson] AddSlash 출력 결과 포함

jjeong 2021. 11. 16. 16:54

jackson 사용 시 writeValueAsString(Object) 에서 간혹 JSON String 에 Addslash 된 결과가 출력

reponse.getEntity() -> EntityUtils.toString 후 writeValueAsString(Object)

하게 되면 의도하지 않게 List value 에 addslash 가 되어서 출력이 되버립니다.
이를 방지 하기 위해서는 아래 단계를 추가해서 구분해 주면 됩니다.

response.getEntity() -> EntityUtils.toString -> readValue(String, new TypeReference<List<Object>>() {}) -> writeValueAsString(Object)

하게 되면 원하는 결과를 얻을 수 있습니다.

Case 1) reponse.getEntity() 가 Object 형일 경우
reponse.getEntity() -> EntityUtils.toString -> writeValueAsString(Object)

Case 2) reponse.getEntity() 가 List 형일 경우
response.getEntity() -> EntityUtils.toString -> readValue(String, new TypeReference<List<Object>>() {}) -> writeValueAsString(Object)