2010-11-22 5 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 
} 

그것은 앞에 중괄호가 있습니다. 이 코드 블록을 실행하려고하면 그것은

사람이 같은 문제가 발생했습니다의 .... 문자 하나에 '[' 를 시작해야

JSONArray 텍스트를 말하는 오류를 제공합니다 ? 어떤 도움이라도 대단히 감사하겠습니다. 가능한 경우 샘플 코드 블록을 보여주십시오. 미리 감사드립니다.

답변

62

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

문자열 결과 = 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

정말 대단히 감사합니다, Rashid Mirazimi. 너는 내 하루를 구했다. – iSofia