web-dev-qa-db-fra.com

Comment vérifier si une clé existe dans l'objet Json et obtenir sa valeur

Disons que ceci est mon JSON Object

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

J'ai besoin de savoir que "video" existe ou non dans cet objet, et s'il existe, je dois obtenir la valeur de cette clé. J'ai essayé de suivre, mais je suis incapable d'obtenir la valeur de cette clé.

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

Utilisez le code ci-dessous pour rechercher la clé, qu'il existe ou non dans JsonObject. La méthode has("key") permet de rechercher des clés dans JsonObject.

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

Si vous utilisez la méthode optString("key") pour obtenir la valeur String, ne vous inquiétez pas si les clés existent ou non dans la variable JsonObject.

13
Chetan Joshi

Utilisation

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

A partir de la structure de votre objet source, je voudrais essayer:

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

Essayer

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) {

    }
2
Pehlaj

La classe JSONObject a une méthode nommée "a" . Renvoie true si cet objet a un mappage pour name. Le mappage peut être NULL . http://developer.Android.com/reference/org/json/JSONObject.html#has(Java.lang.String)

2
Fathima km

S'il vous plaît, essayez celui-la.. 

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();
 }
2
Chetan Pushpad
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
 }

je pense que cela pourrait vous aider

0
Rizwan