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
}
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
.
Utilisation
if(containerObject.has("video")){
//get value of video
}
containerObject= new JSONObject(container);
if(containerObject.has("video")){
//get Value of video
}
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
}
}
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) {
}
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)
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();
}
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