2011-07-27 21 views
0

私はJSONファイルを作成し、ドメインにアップロードしました。私の目標はその文書を解析して情報を取得しますが、何か間違っています。これはJSONファイルです。JSONを解析して結果を表示する(Android)

{ 
    "Show" : { 
     "id" : "abcde123", 
     "name" : "Traviata", 
     "date" : "September 15, 2011" 
    } 
} 

これは、私はJSONをパースするために使用するJavaコードです:

private void parse(){ 
    try { 

     URL eventsJSON = new URL("http://www.site.com/test/sample.json"); 
     URLConnection tc = eventsJSON.openConnection(); 
     BufferedReader in = new BufferedReader(new InputStreamReader(tc.getInputStream())); 

     String line; 
     while ((line = in.readLine()) != null) { 
      JSONArray jArray = new JSONArray(line); 

      for (int i = 0; i < jArray.length(); i++) { 
       eventsJSONObject = (JSONObject) jArray.get(i); 

      } 
     } 

     JSONArray eventsArray = eventsJSONObject.getJSONArray("Show"); 

    //name of the show 
    Log.d("LOG", jArray.getJSONObject(0).getString("name").toString()); 

    } catch (MalformedURLException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 

しかし、クラスが動作していない...誰かが私を助けてくださいことができますか? ありがとう!!!! :)

EDIT: これは、作業コードですが、私はそれが

String jString = "{\"Show\" : {\"from\" : \"June 12, 2011\",\"id\" : \"abcde123\",\"name\" : \"Traviata\"}}"; 


JSONObject jObject = new JSONObject(jString); 
JSONObject eventsObject = jObject.getJSONObject("Shows"); 

String eventId = eventsObject.getString("id"); 
String eventName = eventsObject.getString("name"); 
String eventDateFrom = eventsObject.getString("from"); 

どのように私は、バッファリーダーを実装し、JSONコードを覚えるんファイルからJSONを解析動作させることはできませんjString文字列で?

答えて

2

この:

JSONArray eventsArray = eventsJSONObject.getJSONArray("Show"); 

はJSONObjectとして解析する必要があります。

JSONObject eventObj = eventsJSONObject.getJSONOnject("Show"); 

残りは簡単でなければなりません。 "show"は配列ではなく3つのフィールドを持つオブジェクトを表します。答えを

{ 
    "Show" : [ 
     "id" : "abcde123", 
     "name" : "Traviata", 
     "date" : "September 15, 2011" 
    ] 
} 
+0

おかげで、しかし、あなたは私のコードを編集してみてくださいすることができます

ところで、配列はそのように見えるのでしょうか?私はまだそれを動作させることはできません –

+0

編集は本当に(本当に)短いと素敵なチュートリアル(jsonの構造を見て、どのように各フィールドを取得するか):http://www.androidcompetencycenter。 com/2009/10/json-parsing-in-android/ – MByD

+0

クール、ありがとう!チュートリアルは正常に動作しますが、問題は文字列が常にヌルです。私はwhileサイクルを間違って書きましたか? –

関連する問題