2016-07-28 8 views
0

しばらくサイトを見回していましたが、どこにも行きません。JSONExceptionを解決する方法: "1"の値がありません

私はPHP経由でMySQLのDBからの値のリストを取得しているAndroidアプリを作成し、JSONオブジェクトにエンコードされた結果を返すいます:

{"error":false,"values":{"1":{"name":"This is a string"}, "2":{...}}} 

私はJavaでJSONオブジェクトを取得していますようにそう:私は例外を取得楕円前時点での

JSONObject jObj = new JSONObject(response); 
boolean error = jObj.getBoolean("error"); 

if (!error) { 
    JSONObject values = jObj.getJSONObject("values"); 
    Iterator<?> keys = values.keys(); 

    while(keys.hasNext()) { 
     String key = (String)keys.next(); 
     JSONObject value = jObj.getJSONObject(key); 
     ... 
    } 

その:

org.json.JSONException: No value for "1" 

私は完全に愚かな何かをやっていますか?私は複数の異なることを試みたが、同じ問題を抱え続けている。 私は最終的にやってみたいことは、名前objを取得し、それを文字列のリストに追加することです。しかし、私はこの点を超えているようには見えません。

適切な方向へのヘルプやプッシュは感謝します。

+1

と交換してくださいあなたは__なく__jObj__から__values.getJSONObject(キー)を使用して値を読んでください。 – harism

+0

PHP API経由でデータを取得できますか? ObjectではなくArrayとして値を作る方が良いので、簡単に反復処理できます。 –

+0

私はそれを試してくださいsoltionを投稿しました。 –

答えて

1
JSONObject value = jObj.getJSONObject(key); 

JSONObject value = values.getJSONObject(key); 
+0

私は馬鹿のように感じる..私の正気を返すための乾杯:) – smurfMT

0
JSONObject jObj = new JSONObject(response); 
boolean error = jObj.getBoolean("error"); 

if (!error) { 
    JSONObject values = jObj.getJSONObject("values"); 
    Iterator<?> keys = values.keys(); 

    while(keys.hasNext()) { 
     String key = (String)keys.next(); 
     JSONObject value = values.getJSONObject(key); 
     ... 
    } 
関連する問題