我得到一個JSONObject異常的情況下,我的JSON對象中的twitter
值media
在我的下面的代碼中爲null,即使我檢查確保我沒有將值分配給任何東西,如果它是。我正在檢查正確的方式嗎?或者我該如何避免我的代碼拋出異常,並允許我檢查twitter值是否存在?Android越來越JSONObject異常
if(nextActivityObject.getJSONObject("media") != null){
media = nextActivityObject.getJSONObject("media");
Log.d("NEXT MEDIA OBJECT NOT EMPTY", media.toString());
if(media.getString("twitter") != null && media.getString("facebook") != null){
Log.d("BOTH NOT NULL", "both not null");
twitter = media.getString("twitter");
facebook = media.getString("facebook");
intent.putExtra("twitter", twitter);
intent.putExtra("facebook", facebook);
}
else if(media.getString("twitter") != null){
twitter = media.getString("twitter");
Log.d("JUST TWITTER NOT NULL", twitter.toString());
intent.putExtra("twitter", twitter);
}
else if(media.getString("facebook") != null){
facebook = media.getString("facebook");
Log.d("JUST FACEBOOK NOT NULL", facebook.toString());
intent.putExtra("facebook", facebook);
}
}
我試過'media.optString(「twitter」)',但沒有運氣。我檢查了我的JSON對象響應,並且在它崩潰的情況下,值是'{'facebook':....'}'並且沒有twitter,所以在那種情況下我會使用'.has'來檢查「沒有鑰匙「的情況? – Rafa
@ ralphie9224我已經在答案中再次總結。使用'opt *()'而不是'get *()'將異常處理改爲空引用/空字符串/ NaN值檢查。 – timrau