클라이언트에서 서버로 넘어오는 헤더 데이터에 email을 추가하였다
에러로그를 찍어놓진 못했지만, email key값을 찾을 수 없다는 에러였던 걸로 기억난다.
JSONObject reqJson = JSONObject.fromObject(header.getData());
String loginId = reqJson.getString("loginId");
String email = reqJson.getString("email");
위와 같이 코드를 구성하였을때, getString email을 서버에는 적용해두었지만,
클라이언트에서 email 의 value를 서버로 던지지 않았기 때문에 에러가 발생하였다.
String email = "";
if(reqJson.has("email")){
email = reqJson.getString("email");
} else {
// something
}
위와 같이 JSONObject의 has () 를 사용하여, 데이터가 넘어오지 않아도 처리할 수 있도록 변경하였다.
[추가]
결론 : JSON 오브젝트 생성시, value에 null을 넣으면 안된다!!
// key : "banana" value : null 데이터삽입
//obj.has("banana") key값이 존재하는지 확인 → "바나나 없음" 출력
위의 테스트 과정에서 value값을 null 로 put 하였다, 그럼 당연히 key값이 "banana"이고 value가 null로
들어간다고 생각했지만, has로 검증하니 데이터가 없었다. 첨부터 banana는 들어가지 않은 것이다.
ERROR 메세지도 obj.getString("banana")를 하였을 때, key 값이 존재하고 value가 null이면
NullPointException이 발생하였을텐데, ["banana"] not fount Exception이 발생하였다.
본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요.
정보 공유를 위한 포스팅에 큰 힘이 됩니다.
만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다.
읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요.
'JAVA' 카테고리의 다른 글
Log4j 취약점 (긴급조치) (0) | 2021.12.21 |
---|---|
[JAVA] java cron expression (0) | 2021.10.29 |
[JAVA] contains 함수의 재밌는 원리 (1) | 2021.10.28 |
[Maven] 프로젝트에 Json lib 추가하기, Exception in thread "main" java.lang.NoClassDefFoundError: (0) | 2021.10.26 |
[JAVA] 특정 문자 포함 확인 .contains (String, List ) (0) | 2021.10.15 |