我正在尝试读取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文本必须以'['开头 在......的角色1。
有没有人遇到这样的问题?任何帮助将不胜感激。 如果可以的话,请给我一个示例代码块。 提前谢谢。
答案 0 :(得分:65)
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")
);
}
答案 1 :(得分:7)
首先需要创建一个JSONObject来获取Array,这样的东西应该可以工作:
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jArray = jsonObject.getJSONArray("list");
答案 2 :(得分:2)
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"));
}