반응형
팀원이 작성한 코드 중 문제가 있다는 팀장님의 말씀.
옆으로 쫄래쫄래 다가가 같이 코드를 보아도 여전히 문제를 모르겠다.
결과는 이렇다.
Token을 발급해주는 서버로부터 받는 포맷은 다음과 같은 Json형태이다.
이 형태일때는 tokenbufferedReader.readLine()으로 한 줄을 받아, ObjectMapper를 이용하여 TokenVo를 만들어도 문제가 되지않는다.
하지만 Token을 발급해주는 서버가 너무나도 친절하여 굳이 다음과 같이 Json포매팅으로 변경해서 보내준다면??
tokenbufferedReader.readLine()으로 한 줄을 받는 순간 "{" 만 덜렁 받아지게되는 문제가 발생한다. 따라서 다음과 같은 (정답은 아니지만) 일종의 안전장치를 달아주는 게 좋다.
StringBuilder sb = new StringBuilder();
String inputLine; // 라인 별 입력받아지는 String
while((inputLine = tokenbufferedReader.readLine()) != null) {
sb.append(inputLine); // 각 라인 별 입력받아진 String들을 하나의 String으로 만들기 위해 sb에 담아준다.
}
그 뒤, ObjectMapper.readValue()의 parameter로 sb을 String으로 변환하여 넣어준다면 어떠한 형식의 Json이어도 문제없이 받아낼 수 있게 된다.
반응형
'ahnnyung , > Java' 카테고리의 다른 글
[Java] 람다식(Lambda Expression)의 개념 및 사용방법 (0) | 2021.07.29 |
---|---|
[Java] Arrays.sort() & Collections.sort() 비교 (0) | 2021.03.19 |
[Java] System.nanoTime()으로 자바 코드 실행에 걸린 시간을 측정 (0) | 2021.03.19 |
[Java] Java 8 Stream이란? (6) | 2021.01.19 |
[Java] StringUtils.isBlank() vs isEmpty() (0) | 2020.11.19 |