2011-07-22 11 views
1

私は小さなアプリ(ウェブからの画像ギャラリーで、私が受け取ったJSONファイルから得たURLでした)を作ろうとしています。 JSONの文脈は、次のようになります。アンドロイドのJSON問題(オブジェクトが消える)

{"images":{ 
    "yXVak":{ 
     "image_hash":"yXVak", 
      "imgur_page":"http:\/\/imgur.com\/yXVak", 
      "original_image":"http:\/\/imgur.com\/yXVak.gif", 
      "large_thumbnail":"http:\/\/imgur.com\/yXVakl.gif", 
      "small_thumbnail":"http:\/\/imgur.com\/yXVaks.gif", 
       "message":"I didn't know they made you see THAT well.", 
       "source":" ", 
        "date_popular":"2011-07-18 18:45:05"}, 

..... 私は「yXVak」のように見える、約30以上のオブジェクトを持っています。

ここで問題は、テキストを解析しようとすると、プログラムはオブジェクト "yXVak"を見つけることができません。例外は次のようになります:org.json.JSONException:JSONObject ["yXVak"]見つかりません。私はJSTRINGオブジェクトは右(文字列全体に見えることを発見し、デバッグすることにより

JSONObject jHash = jImages.getJSONObject("yXVak") ; 
      String hash = jHash.getString("yXVak"); 
      String page = jHash.getString("http:\\/\\/imgur.com\\/yXVak"); 
      Image[] images = new Image[3]; 
      images[0] = new Image(jHash.getString("original_image"), jHash.getString("http:\\/\\/imgur.com\\/yXVak.gif")); 
      images[1] = new Image(jHash.getString("large_thumbnail"), jHash.getString("http:\\/\\/imgur.com\\/yXVakl.gif")); 
      images[2] = new Image(jHash.getString("small_thumbnail"), jHash.getString("http:\\/\\/imgur.com\\/yXVaks.gif")); 
      String message = jHash.getString("I didn't know they made you see THAT well."); 
      String source = jHash.getString(" "); 
      String date = jHash.getString("2011-07-18 18:45:05"); 
      listOfImages.add(new ImageHash(hash, page, images, message, source, date)); 

...

:関数はそのように見えます

jObject = new JSONObject(jString); 
        JSONObject jImages = jObject.getJSONObject("images"); 
        getImages(jImages); 

getImages: は、私はそのようなJSONファイルを解析しますjImagesオブジェクトには2つの最初のオブジェクト( "yXVak"、ここでは "6k9yE"で示していない2番目のオブジェクト)がありません。 誰かが私に助けてくれますか?どうしたのですか?あなたはgetImages機能では、この行を変更する必要があり

答えて

3

私の事: -

JSONObject jHash = jImages.getJSONObject("yXVak"); 
//Changes in this lines. 
String hash = jHash.getString("image_hash"); 
String page = jHash.getString("imgur_page"); 
// Rest of your code is same. 

+0

、これはout.Iそれはあなたの問題を解決することを考えてみてください感謝の男、私は私を信じていませんその愚かな間違いをしましたが、私は1つの質問があります:このコードを再利用する方法はありますか(getString()で関数を書く以外に)、どういうわけか、JSONObjectのすべてをループで処理することを意味します。 – user854787

+0

こんにちは@ user854787、StackOverFlowへようこそ。あなたの質問にはうまくいきません。しかし、あなたの応答に複数のJSONObjectの 'yXVak'が含まれている場合は、ループを通過できます。そうでなければ、getString()を使用してください。 –

関連する問題