因此,我试图将值从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}

最佳答案

您的resortsroom_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);
            }

        }

09-10 10:25