これが私の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
}
以下のコードを使用して、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
に存在するかどうかについて心配する必要はありません。
つかいます:
if (containerObject.has("video")) {
//get value of video
}
containerObject = new JSONObject(container);
if (containerObject.has("video")) {
//get Value of video
}
あなたのソースオブジェクトの構造から、私は試してみます:
containerObject= new JSONObject(container);
if(containerObject.has("LabelData")){
JSONObject innerObject = containerObject.getJSONObject("LabelData");
if(innerObject.has("video")){
//Do with video
}
}
JSONObjectクラスには、「has」という名前のメソッドがあります。このオブジェクトに名前のマッピングがある場合、trueを返します。マッピングはNULLの場合があります。 http://developer.Android.com/reference/org/json/JSONObject.html#has(Java.lang.String)
これをお試し下さい..
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();
}
試して
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) {
}
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
}
これはあなたを助けるかもしれないと思う