Чтение массива 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 должен начинаться с '[' при символе 1 из....
Кто-нибудь сталкивался с такой проблемой? Любая помощь будет принята с благодарностью.
Пожалуйста, покажите мне пример кода, если сможете.
Спасибо заранее.
Ответы
Ответ 1
Объект 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")
);
}
Ответ 2
Сначала вам нужно создать JSONObject для получения массива, что-то вроде этого должно работать:
JSONObject jsonObject = new JSONObject(jsonString);
JSONArray jArray = jsonObject.getJSONArray("list");
Ответ 3
Строковый результат = js.getString( "Результат" );
JSONArray js2 = new JSONArray(result);
for (int i = 0; i < js2.length(); i++) {
JSONObject js3 = js2.getJSONObject(i);
categoriescity.add(js3.getString("Title"));
}