2

我正在尝试在 Android 应用程序中转换以下 JSON:

[
    {
        "patient_id": "16",
        "patient_firstname": "Ion",
        "patient_name": "Vasilescu",
        "location": "Cardiologie, Salon 4, Pat 2"
    },
    {
        "patient_id": "22",
        "patient_firstname": "Claudiu",
        "patient_name": "Popovici",
        "location": "Pneumologie, Salon 5, Pat 5"
    },
    {
        "patient_id": "15",
        "patient_firstname": "Monica",
        "patient_name": "Suciu",
        "location": "Cardiologie, Salon 4, Pat 2"
    }
]

我已经阅读了类似的问题和答案,但就我而言,我没有看到任何语法问题。我已经用JSONLint检查了 JSON,并且验证成功。

我的java代码如下:

public JSONObject toJson(String jString){
    System.out.println("I've got"+jString+"*");

    try {
        return new JSONObject(jString);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("Error while converting to JSONObject");
    }

    return null;
}

有人对如何摆脱我的错误有建议吗?或者如何实施更好的解决方案?谢谢。

4

3 回答 3

4

将 JSONObject 替换为 JSONArray,因为它是一个数组!

于 2012-05-23T04:58:56.273 回答
3

你得到的结果是一个 JSon 数组而不是 JSon 字符串,所以试着改变 slass

你的代码:

public JSONObject toJson(String jString){
    System.out.println("I've got"+jString+"*");

    try {
        return new JSONObject(jString);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("Error while converting to JSONObject");
    }

    return null;
}

修改后:

public JSONObject toJson(String jString){
    System.out.println("I've got"+jString+"*");

    try {
        return new JSONArray(jString);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("Error while converting to JSONObject");
    }

    return null;
}
于 2012-05-23T05:07:35.943 回答
2

在这里看到你的 json 只包含JsonArrayList 所以只需将你转换StringJSONArray 而不是JSONObject

public JSONArray toJson(String jString){
    System.out.println("I've got"+jString+"*");

    try {
        return new JSONArray(jString);
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        System.out.println("Error while converting to JSONArray");
    }

    return null;
}
于 2012-05-23T05:08:52.077 回答