2012-01-06 11 views
4

私はこのサイトを何年も使っていますが、投稿したことはありません。私は困惑して、誰かが私を助けてくれることを願っています。Android用ネストされたアイテムのJSON解析

Slicekickがここに投稿した内容と非常に似たコードを使用していますが、JSON parsing app "no data"?という投稿はありますが、このJSONファイルを解析する方法を理解できていないようです。私はスペース/時間を節約するために解析しようとしている正確なフォーマットを反映するためにJSON情報を編集しました。 「結果」を解析するにはどうすれば「名前」と「タイプ」をクエリできますか? 「類似」と「情報」の問題と同様に、下のファイルで「情報」と「結果」を解析するにはどうすればよいですか?

{ 
"head": { 
    "title": "Music", 
    "status": "200" 
}, 
"Info": [ 
    { 
     "Name": "Mos Def", 
     "Type": "music", 
     "Results": [ 
      { 
       "Name": "Talib Kweli", 
       "Type": "music" 
      }, 
      { 
       "Name": "Black Star", 
       "Type": "music" 
      }, 
      { 
       "Name": "Little Brother", 
       "Type": "music" 
      } 
     ] 
    }, 
    { 
     "Name": "Mos Def", 
     "Type": "Vehicles", 
     "Results": [ 
      { 
       "Name": "Chevy", 
       "Type": "Car" 
      }, 
      { 
       "Name": "Ford", 
       "Type": "Car" 
      }, 
      { 
       "Name": "Pontiac", 
       "Type": "Car" 
      } 
     ] 
     } 
    ] 
} 

関心のある私のコードの一部は次のとおりです:

...私はここで

は、私が使用している正確な形式に編集したJSONファイルの例です。 HTTPGET ... StringBuilderの に組み込まれます... StringBuilderの

jArray = new JSONObject(result); 

の結果とJSONObjectを作成している...その返します私は困惑していますのはここ...

JSONArray Info = json.optJSONArray("Info"); 

    System.out.println("HERE IS INFO: "); 
    System.out.println(Info); 
    //System.out.println("HERE IS RESULTS: "); 
    //System.out.println(Results); 

そして、基本的には上に続いて

です。 問題を絞り込むためにメッセージを印刷しました。 「名前」:「モス・デフ」「タイプ」:「音楽」 - と - 「名前」:「モス・デフ」「タイプ」:「車」

解析「情報は、」私が検索することができます「情報」の検索を「結果」に置き換えると、データが表示されません。 (見つからない)

アイデア?

+0

誰もUをコードしないだろう、uがurselfで行う必要があります。 – Richa

+0

コーダーを探していませんでした。私を正しい方向に向けるためのヒントやアイデアを持った人を探していました。 – Monty

答えて

1

jArray = new JSONObject(result); 
for(int i=0;i<jArray.length();i++) 
{ 
    JSONArray Info = json.optJSONArray("Info"); 
    for(int j=0;j<Info.length();j++){ 
    { 
     System.out.println("HERE IS INFO: "); 
     System.out.println(Info); 
     //System.out.println("HERE IS RESULTS: "); 
     JSONObject obj=Info.getJSONObject(j); 
     JSONArray results=obj.getJSONArray("Results"); 
     for(int k=0; k<results.length(); 
     { 
      //Process Results 
     } 
} 
+0

これは出力を出せますか?結果はJSONObjectの内部にあり、直接アクセスしようとしているので、私はそうは思わない。 –

+0

はい、それはいくつかのエディションが必要な場合があります。私はそれに応じて編集しましたが、それでもコンパイルされたコードはありません。 – jeet

+0

あなたの反応とLalitの反応を読んで、私はそれを機能させるために何かをまとめることができました。私はポストする時間を取ってくれてありがとう!私はあなたがそれが誰を助けるかもしれないと思えば、私が終わった作業の解決策を投稿します。 – Monty

4

確かに、ResultsはJSONArray InfoのJSONArrayであるためです。ですから、このような何かを試してみてください、あなたは以下のようにあなたの解析コードを呼び出す必要が

JSONArray Info = json.optJSONArray("Info"); 
JSONArray Results = null; 
for (int i = 0; i < array.length(); i++) { 
      JSONObject object = Info.getJSONObject(i); 
      Results results = object.getJSONArray("Results"); 
     } 
+0

この返信いただきありがとうございます。それが本当に必要なのはちょっとしたヒントだった。あなたが投稿したものとJitendraが投稿したものを使用することによって、私は今それを把握しました。再度、感謝します!あなたがそれが他の誰かを助けるかもしれないと思えば、結局それが働いているものを投稿します。 – Monty

+0

@lalit Bro私はまた、jsonの解析問題に直面しています。私はJsonObjectを作成するときにJsonExceptionを取得しています。ここに私の質問へのリンクがあります。 (QUESTION)[http://stackoverflow.com/questions/17523805/json-exception-type-mismatch/17523993?noredirect=1#17523993] 親切に私を助けてください – Naruto

0
そのGoogleからの

より良い使用GSON、およびそれを使用してJSONを解析するには、ケーキの一部..です!! ここでは、それをキックオフする良いチュートリアルです、あなたはGSONを使用してより幸せになります。

Link for GSON tutorial

+0

返信いただきありがとうございます。私はそれを読んだが、まだそれをすぐにチェックするかもしれない。何らかの理由でjarファイルをインポートしようとすると問題が発生しました(付属のJSONライブラリを見つけようとしていました)。 – Monty

+0

http://code.google.com/p/google-gson/downloads/listからgsonをダウンロードしてください一度ダウンロードしてdroidプロジェクトの "lib"フォルダを作成してからEclipseを右クリックしてライブラリを追加すると、それがそこに移動します。 – kaibuki

+0

ありがとう、Kaibuki。私はそれを試してみましょう。 – Monty

関連する問題