2011-09-26 5 views
0

나는 server.I를 통해받은 JSON 데이터를 파싱하는데 약간의 문제가있다. 나는 항상 데이터가없는 두 개의 JsonObjects를 가지고 있는데, 어떤 경우에는 그렇지만 그들은 null인지 아닌지 항상 확인해야한다. 그렇게이 코드를 사용 친군 :안드로이드 JSON 예외

String jsonData = new String(contentBuffer,"UTF-8"); 
      Log.w("JSONDATA","JSONDATA VALID OR NOT : "+jsonData); 
      json = new JSONObject(jsonData); 
      JSONObject jsonObj =(JSONObject) new JSONTokener(jsonData).nextValue(); 

if(jsonObj.getString("collection_id")==null){ 
       values.put("collection_id", 0); 
      }else { 
       collectionId = Integer.parseInt(jsonObj.getString("collection_id")); 
       values.put("collection_id", collectionId); 
      } 
      Log.w("COLLECTION ID ","SHOW COLLECTION ID : "+collectionId); 

      if(jsonObj.getString("card_id")!=null){ 
       values.put("card_id", cardId); 
      }else { 
       values.put("card_id", 0); 
      } 
      Log.w("CARD ID ","SHOW CARD ID : "+cardId); 

그리고 나는 그것이, collection_idnull 경우 단지 확인, 예외를 던질 데이터베이스에 0을 저장하고, 그것의 저장하지 않으면하지 원하는 것은 값. 하지만이 코드를 사용하면 JSONException이 발생합니다.

어떻게 해결할 수 있습니까?

+0

스택 트레이스를 게시 할 수 있습니까? 'JSONDATA' 로그 항목에 로그인하는 것을 보여줄 수 있습니까? –

답변

3

사용

if (jsonObject.has("collection_id")) 

된 JSONObject가에 키 선물을 collection_id를 경우이 확인합니다.

2

또한이 존재하는 경우 int로 값을 얻거나 그렇지 않은 경우 0을 반환합니다

collectionId = jsonObj.optInt("collection_id", 0); 

를 사용할 수 있습니다.

관련 문제