因此,我试图将值从JSONArray转换为JSONObject,但我一直在收到此错误:
org.json.JSONException:值0,类型为java.lang.String的Aamod Shoghi无法转换为JSONObject
JSONObject json = jParser.makeHttpRequest(url_all_resorts, "POST", params);
Log.d("All Resorts : ", json.toString());
// Checking for SUCCESS TAG
int success = json.getInt(TAG_SUCCESS);
if (success == 1) {
// resorts found
// Getting Array of resorts
resorts = json.getJSONArray(TAG_RESORT);
rates = json.getJSONArray(TAG_PRICE);
int i;
// looping through All resorts
for (i = 0; i < resorts.length() & i < rates.length(); i++) {
JSONObject c = resorts.getJSONObject(i);
JSONObject d = rates.getJSONObject(i);
// Storing each json item in variable
String name = c.getString(TAG_NAME);
String price = d.getString(TAG_ROOM_PRICE);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_NAME, name);
map.put(TAG_ROOM_PRICE, price);
// adding HashList to ArrayList
resortsList.add(map);
}
}
JSON样本数据
{"resorts":["Aamod Shoghi","Aamod Shoghi","Aamod Shoghi"],"room_prices":["100","800","1000"],"success":1}
最佳答案
您的resorts
和room_prices
数组仅包含strings
。
采用:
// Storing each json item in variable
String name = resorts.getString(i);
String price = rates.getString(i);
代替:
JSONObject c = resorts.getJSONObject(i);
JSONObject d = rates.getJSONObject(i);
// Storing each json item in variable
String name = c.getString(TAG_NAME);
String price = d.getString(TAG_ROOM_PRICE);
尝试这个:
...........
...................
if (success == 1) {
// resorts found
// Getting Array of resorts
resorts = json.getJSONArray("resorts");
rates = json.getJSONArray("room_prices");
int i;
// looping through All resorts
for (i = 0; i < resorts.length() & i < rates.length(); i++) {
// Storing each json item in variable
String name = resorts.getString(i);
String price = rates.getString(i);
// creating new HashMap
HashMap<String, String> map = new HashMap<String, String>();
// adding each child node to HashMap key => value
map.put(TAG_NAME, name);
map.put(TAG_ROOM_PRICE, price);
// adding HashList to ArrayList
resortsList.add(map);
}
}