0

twitter以下のコードでJSONオブジェクトの値mediaがnullの場合、値を何にも割り当てていないことを確認しても、JSONObject例外が発生します。私がチェックしている方法は正しいですか?または、コードが例外をスローするのを回避し、twitter の値が存在するかどうかを確認するにはどうすればよいですか?

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);
      }
  }
4

2 に答える 2

1

使用できますmedia.optString("twitter");。また、「「と呼ばれるキーがない」と「キーに空の文字列値がある」media.has("twitter")を区別するために別のものが必要です。twittertwitter

要約すると、「twitter」キーの場合、次のように書くことができます

 else if(media.has("twitter")){
       twitter = media.optString("twitter");
       // here twitter is non-NULL String
       Log.d("JUST TWITTER NOT NULL", twitter.toString());
       intent.putExtra("twitter", twitter);
  }
于 2015-10-03T03:12:21.927 に答える