web-dev-qa-db-ja.com

Jsonオブジェクトにキーが存在するかどうかを確認し、その値を取得する方法

これが私のJSON Object

{
  "LabelData": {
    "slogan": "AWAKEN YOUR SENSES",
    "jobsearch": "JOB SEARCH",
    "contact": "CONTACT",
    "video": "ENCHANTING BEACHSCAPES",
    "createprofile": "CREATE PROFILE"
  }
}

このオブジェクトに「ビデオ」が存在するかどうかを知る必要があり、存在する場合はこのキーの値を取得する必要があります。フォローしようとしましたが、このキーの値を取得できません。

 containerObject= new JSONObject(container);
 if(containerObject.hasKey("video")){
  //get Value of video
}
11
Kirmani88

以下のコードを使用して、JsonObjectにキーが存在するかどうかを確認します。 has("key")メソッドは、JsonObject内のキーを見つけるために使用されます。

_containerObject = new JSONObject(container);
//has method
if (containerObject.has("video")) {
    //get Value of video
    String video = containerObject.optString("video");
}
_

optString("key")メソッドを使用して文字列値を取得している場合、キーがJsonObjectに存在するかどうかについて心配する必要はありません。

23
Chetan Joshi

つかいます:

if (containerObject.has("video")) {
    //get value of video
}
6
Er.Tyson Subba
containerObject = new JSONObject(container);
if (containerObject.has("video")) { 
   //get Value of video
}
4
Mukeshkumar S

あなたのソースオブジェクトの構造から、私は試してみます:

containerObject= new JSONObject(container);
 if(containerObject.has("LabelData")){
  JSONObject innerObject = containerObject.getJSONObject("LabelData");
     if(innerObject.has("video")){
        //Do with video
    }
}
4
Tariq

JSONObjectクラスには、「has」という名前のメソッドがあります。このオブジェクトに名前のマッピングがある場合、trueを返します。マッピングはNULLの場合があります。 http://developer.Android.com/reference/org/json/JSONObject.html#has(Java.lang.String)

4
Fathima km

これをお試し下さい..

JSONObject jsonObject= null;
try {
     jsonObject = new JSONObject("result........");
     String labelDataString=jsonObject.getString("LabelData");
     JSONObject labelDataJson= null;
     labelDataJson= new JSONObject(labelDataString);
     if(labelDataJson.has("video")&&labelDataJson.getString("video")!=null){
       String video=labelDataJson.getString("video");
     }
    } catch (JSONException e) {
      e.printStackTrace();
 }
4
Chetan Pushpad

試して

private boolean hasKey(JSONObject jsonObject, String key) {
    return jsonObject != null && jsonObject.has(key);
}

  try {
        JSONObject jsonObject = new JSONObject(yourJson);
        if (hasKey(jsonObject, "labelData")) {
            JSONObject labelDataJson = jsonObject.getJSONObject("LabelData");
            if (hasKey(labelDataJson, "video")) {
                String video = labelDataJson.getString("video");
            }
        }
    } catch (JSONException e) {

    }
3
Pehlaj
JSONObject root= new JSONObject();
JSONObject container= root.getJSONObject("LabelData");

try{
//if key will not be available put it in the try catch block your program 
 will work without error 
String Video=container.getString("video");
}
catch(JsonException e){

 if key will not be there then this block will execute

 } 
 if(video!=null || !video.isEmpty){
  //get Value of video
}else{
  //other vise leave it
 }

これはあなたを助けるかもしれないと思う

0
Rizwan