2010-11-22 11 views
29

JSON配列を読み込もうとしています。ここに私のコードです。androidでJson Arrayを読む

 JSONArray jArray = new JSONArray(jsonString); 

     System.out.println("*****JARRAY*****"+jArray.length()); 
     for(int i=0;i<jArray.length();i++){ 


       JSONObject json_data = jArray.getJSONObject(i); 
       Log.i("log_tag","_id"+json_data.getInt("account")+ 
         ", mall_name"+json_data.getString("name")+ 
         ", location"+json_data.getString("number")+ 
         ", telephone"+json_data.getString("url")+ 
         ",----"+json_data.getString("balance")+ 
         ",----"+json_data.getString("credit")+ 
         ",----"+json_data.getString("displayName") 
       ); 

     } 

そして、私のサンプルJSONファイルの構文は次のようである、

{ 
    "list": [ 
     { 
      "account": 1, 
      "name": "card", 
      "number": "xxxxx xxxx xxxx 2002", 
      "url": "http://www.google.com", 
      "balance": 1.0, 
      "credit": 1.0, 
      "displayName": "hsbc bank" 
     }, 
     { 
      "account": 2, 
      "name": "card2", 
      "number": "xxxxx xxxx xxxx 3003", 
      "url": "http://www.google.com", 
      "balance": 2.0, 
      "credit": 2.0, 
      "displayName": "nsb bank" 
     } 
    ], 
    "count": 2 
} 

それは前に中括弧を持っています。私は、このコードブロックを実行しようとすると、それは

A JSONArrayテキストはの....

文字1で は、誰もがこのような問題が発生した「[」で開始しなければならないというエラーを与えます?どんな助けでも大歓迎です。 可能であれば、サンプルコードブ​​ロックを表示してください。 ありがとうございます。

答えて

62

A JSONオブジェクトが{で始まり、JSON配列は[で始まりながら}で終わります]で終わります。

あなたの場合は、コードをJSONObjectに変更してください。

JSONObject json = new JSONObject(jsonString); 
JSONArray jArray = json.getJSONArray("list"); 

System.out.println("*****JARRAY*****" + jArray.length()); 

for(int i=0; i<jArray.length(); i++){ 
    JSONObject json_data = jArray.getJSONObject(i); 

    Log.i("log_tag", "_id" + json_data.getInt("account") + 
     ", mall_name" + json_data.getString("name") + 
     ", location" + json_data.getString("number") + 
     ", telephone" + json_data.getString("url") + 
     ",----" + json_data.getString("balance") + 
     ",----" + json_data.getString("credit") + 
     ",----" + json_data.getString("displayName") 
    ); 
} 
+0

素晴らしい!それは大変ありがとうございます。 – nala4ever

+2

助けてくれてうれしいです。 **回答を受け入れることを忘れないでください**。 :-) –

+0

tks男私のために働く –

7

あなたは、このようなものがから配列を取得するJSONObjectを作成するための最初の必要性を動作するはずです:

JSONObject jsonObject = new JSONObject(jsonString); 

JSONArray jArray = jsonObject.getJSONArray("list"); 
+0

ありがとうございました。それは – nala4ever

1

文字列result = js.getString( "Result");

    JSONArray js2 = new JSONArray(result); 
        for (int i = 0; i < js2.length(); i++) { 
         JSONObject js3 = js2.getJSONObject(i); 
         categoriescity.add(js3.getString("Title")); 
        } 
+0

ありがとう、非常に、ラシッドミラジミ。あなたは私の一日を救った。 – iSofia