2012-02-21 17 views
1

私はJsonの応答を得ました。私はstring.my文字列から値を取得することはできませんよJson_responseがアンドロイドでの単純なJsonの解析

{"NameAllList":[{"Current":{"time":"2012-02-21T08:04:21","Name":"abcd"}, 
    "Next":{"Name":"data1","StartTime":"2012-02-21T08:06:21"}},{"Current":{"time":"2012-02-21T08:14:21","Name":"defg"}, 
    "Next":{"Name":"data2","StartTime":"2012-02-21T08:24:21"}},{"Current":{"time":"2012-02-21T08:28:21","Name":"ghij"}, 
    "Next":{"Name":"data3","StartTime":"2012-02-21T08:34:21"}},{"Current":{"time":"2012-02-21T08:40:21","Name":"knmo"}, 
    "Next":{"Name":"data4","StartTime":"2012-02-21T08:48:21"}}]} 

ある

であり、私はこれを試してみました。

JSONObject jsonObj = new JSONObject(json_response); 
JSONObject subObj = jsonObj.getJSONObject("Current"); 
String name_current =subObj.getString("Name"); 

「名前」の値を取得できません。私は何をしたのですか?上記の解析を行うためのリンクを提供します。

+0

どのような文字列をエスケープシーケンスなしで文字列変数を作成することができますか? –

+0

私たちはできません。だから私は編集した。 – Dray

答えて

1

あなたが名前の値を取得することができないようにするには、適切にJSONを解析されていません。JSON注釈は[]を表すのでご注意くださいJSONArray、{}はJSONObjectを再提示するので、現在のアイテムを取得するメソッド名前は:

JSONObject jsonObj = new JSONObject(json_response_string); 
JSONArray jsonArr=jsonObj.getJSONArray("NameAllList"); 
String Hora_name_current=""; 
for(int i=0;i<jsonArr.length();i++) 
{ 
    JSONObject obj=jsonArr.get(i); 
    try{ 
      JSONObject subObj = obj.getJSONObject("Current"); 
      Hora_name_current =subObj.getString("Name"); 
      break; 
    }catch(JSONException ex) 
    { 

    } 



} 
1

2番目のリクエストでJSONArrayを使用する必要がある場合に、JSONObjectを使用しようとしているようです。 、「NameAllListは実際には配列であり、そのようなものとして扱われる必要がある、あなたがそれを設定したら。 『あなたのJSONリターンで

JSONObject jsonString = (new JSONObject(json_response_string)); 
JSONArray array = jsonString.getJSONArray("NameAllList"); 

配列』、あなたはその後、forループを実行し、任意のように扱うことができます。これを試してみてくださいJavaで他のアレイ。

はそれが助けなら、私に教えてください。

デビッド

-1

JSONObject jsonObj =新しいJSONObject(json_response_string); JSONArray jsonArray = jsonObj.getJSONArrays( "NameAllList");

3

まず、JSONレスポンスはNameAllListをオブジェクトのJSON配列として持っています。

まずJSON配列を取得してから、1つ1つのオブジェクトを取得できます。例えば

JSONObject jsonString = (new JSONObject(json_response_string)); 
JSONArray array = jsonString.getJSONArray("NameAllList"); 

for(int i=0; i<array.length(); i++) 
{ 
    // Retrieve Current object as such 
    JSONObject objCurrent = array.getJSONObject("Current"); 

    // Retrieve Next object as such 
    JSONObject objNext = array.getJSONObject("Next"); 
} 
+1

パーフェクトアンサー... +1! – Hiral

+0

さらに詳しい例を書いた:[Android - JSON Parsing example](http://goo.gl/S2TcW)。 PS:自分のブログの自己宣伝をすることはできませんが、JSON Parsingに関するユーザーの混乱を招くと思います。 –

+0

本当に質問に密接に関連している場合は、自分のコンテンツを自分自身で宣伝することはできないのですか? – ariefbayu

関連する問題