내가 필요해서 내가 적는 블로그

JAVA 백엔드 개발자의 기록들

JAVA

[JAVA] Json key값 존재 여부 확인 .has()

돌프 2021. 10. 26. 13:55
반응형

클라이언트에서 서버로 넘어오는 헤더 데이터에 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이 발생하였다.  

 

 

 

 

본문 내용이 도움이 되셨다면, 아래의 공감버튼을 눌러주세요. 

정보 공유를 위한 포스팅에 큰 힘이 됩니다. 

만약 틀린 정보가 있으면 댓글 달아주세요. 수정하도록 하겠습니다. 

읽어주셔서 감사합니다. 오늘도 좋은 하루 보내세요. 

반응형