在android中读取一个Json数组

我想读一个JSON数组。 这是我的代码。

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文本必须以….开始,第一个字符为'['

有没有人遇到过这样的问题? 任何帮助将不胜感激。 请给我一个示例代码块,如果可以的话。 提前致谢。

JSON对象以{开始并以a结尾}而JSON数组以[开头并以a结尾]开头。

你的情况,改变你的代码有一个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") ); } 

你首先需要创build一个JSONObject来获取数组,像这样的事情应该工作:

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

String 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")); }