2016-07-05 7 views
0

を解析するgsonを使用することができますどのように、対象物である:それはこのように、時にはJSONの値STR時々は時々、文字列である私のJSONのstrが、時々このように、私はそれをタイトルのよう

{ 
    "data": { 
     "changebaby": "no change", 
     "changemama": { 
      "mamacontext": "mama is a good mama", 
      "mamaico": "", 
      "mamatitle": "mama" 
     } 
    } 
} 

{ 
    "data": { 
     "changebaby": "no change", 
     "changemama": "no change" 
    } 
} 

あなたが見るように、「changebaby」キーと「changemama」キーが時々文字列での値は、時々私はgsonによってそれを解析する方法、オブジェクトのですか?誰も私を助けることができますか?


は誰が私を助けることができる、JSON文字列を解析するには、Googleのgsonのlibが使用する必要があり、JSON文字列を解析するには、AndroidのAPIを使用しないでください?

+3

この[URL](http://stackoverflow.com/a/13100642/2078074)で確認してください。それがあなたを助けることを願ってください。 – Lawrance

+0

@Lawranceは正しく 'instanceof' – Mohit

答えて

0

はアンドロイドの開発をsimplyfyするために、我々は新しいモバイルAPI.Theを変更するには、バックエンドの開発者を求めることができますAPIは値を変更できないjson文字列をretureできます。すべてのキーの値は時には文字列でも、時にはオブジェクトでもありません。

1

はこれで試してみてください:

JSONObject changemama=jsonObject.optJSONObject("changemama"); 
    if(changemama== null){ 
     String str=jsonObject.optString("changemama"); 
} 
0

は、このコードを試してみてください。

JSONObject data; 
try { 
    data = jsonObj.getJSONObject("changemama"); 

    // do stuff 

} catch (JSONException e) { 
    data = jsonObj.getString("changemama"); 

    // do stuff 
} 
+0

とチェックする必要があります。プログラムがクラッシュする可能性は50%あります。 –

+0

あなたはどのように説明できますか? –

+2

オブジェクトが文字列かJSONobjectであることが保証されていません。その中にはプログラムがクラッシュすることはなく、代わりに 'optString'と' optJsonObject'を使用します.. !!彼のケースでは –

1
if(jsonObject.optJSONObject("changemama") != null) 
{ 
    JSONObject changemama=jsonObject.optJSONObject("changemama"); 
    //Its JSON object, do appropriate operation 
} 
else if(jsonObject.optString("changemama") != null) 
{ 
    //Its string, do appropriate operation 
} 

あなたはブールまたはintまたはlongのような可能性のより多くの数を持っている場合、それが存在している場合this

optJSONObject

名前でマッピングされた値を返します参照してください。 JSONObject、または を返します。道のlawranceで行く

かが与えられていますDetermine whether JSON is a JSONObject or JSONArray

0

はこれを試してみてください。

if(obj.has("changemama")){ 
    if(obj.optString("changemama").length() > 0){} 
    else if(obj.optJSONObject("changemama").length() > 0){}} 
関連する問題