错误:org.json.JSONException:类型为java.lang.String的值http无法转换为JSONObject

时间:2016-09-25 21:58:41

标签: android json

我正在尝试使用JSON并在Android列表视图中显示它。

这是JSON:

{
    "meta": {
        "limit": 20,
        "next": null,
        "offset": 0,
        "previous": null,
        "total_count": 5
    },
    "objects": [{
        "acad_rating": "4.58",
        "address": "Karawal Nagar Delhi-110094",
        "adm_close": "5/2/2016",
        "adm_open": "1/1/2016",
        "affiliated_till": "31/3/2017",
        "area": "Karawal Nagar (West)",
        "average_board_perc": null,
        "boardhighsec": "Cbse",
        "boardsec": "Cbse",
        "books_in_lib": 9684,
        "boyperc": "72.00",
        "category": " Primary With Upper Primary And Secondary And Higher Secondary(1-12) ",
        "cce_impl": true,
        "city": "Delhi",
        "cityslug": "delhi",
        "coed": "Co-Ed",
        "computer_aid_learn": true,
        "description": null,
        "district": "North East Delhi",
        "drinking_water": "Tap Water",
        "email": "bhavansl@hotmail.com",
        "facilities_rating": "5.00",
        "fax": "4132622661",
        "girlperc": "28.00",
        "good_classrooms": 21,
        "grad_teachers": "92.16",
        "highestclass": 12,
        "image": null,
        "library": true,
        "lowestclass": 1,
        "medical_checkup_last_yr": true,
        "medium": " English ",
        "mid_day_meal": "Na",
        "minage": 3,
        "name": "Sardar Patel Public Sr.Sec. School",
        "no_classrooms": 21,
        "no_computers": 35,
        "overall_rating": "4.33",
        "padmin": 15,
        "parents_smc": 2,
        "phone": "22934441",
        "pincode": 110094,
        "playground": true,
        "pqualification": "B.A., M.Phil, M.Ed.",
        "principal": "Mohd Zahid Khan",
        "pteach": 9,
        "ptotal": 24,
        "ramp": true,
        "rating": "3.5",
        "residential_school": false,
        "resource_uri": "/api/schools/7030327101/",
        "school_mgt_com": true,
        "schoolid": "7030327101",
        "schooltype": "Private Unaided School",
        "since": 1985,
        "slug": "sardar-patel-public-srsec-school",
        "student_teacher": "33.45",
        "total_seats": 0,
        "total_smc": 18,
        "total_students": 1706,
        "total_teachers": 51,
        "totalews": 0,
        "trust": "Geeta Educational Society, Shera",
        "tuition": 0,
        "website": "http://www.auroville.org.in",
        "workdays_pr": 240,
        "written_test": true,
        "zone": "4"
    }]
}

Android中的Asynctask:

@Override
    protected void onPostExecute(String result) {

        try {
            JSONObject jObj = new JSONObject(result);
            String notes = jObj.getString("objects");
      } catch (JSONException e) {
            Log.e("JSONException", "Error: " + e.toString());
        }

不确定我收到错误的原因:

E/JSONException: Error: org.json.JSONException: Value http of type java.lang.String cannot be converted to JSONObject

1 个答案:

答案 0 :(得分:1)

您传递给onPostExecute()方法的String结果显然不是JSON字符串。

此外,为什么不在doInBackground()中解析JSON字符串。后台线程是执行此类任务的更好选项 - 如果可能,保留onPostExecute()方法,该方法在UI线程上运行以便在UI线程上进行操作。 JSON解析绝对可以在后台完成。