如何解析android中的json响应,具有以下格式

时间:2015-11-11 10:11:40

标签: android json parsing

我试图在android中为我的android应用程序解析一个json响应。我得到了org.json.JSONException。答复如下所示:

 {
    id: "12345"
    email:"abc@gmail.com"
firstName:"abcd"
lastName:"efgh"
userName:"abc123"
    }

我正在尝试解析响应,如下所示:

 if (response != null) {
                    try {
                        //JSONObject jsonObj = new JSONObject(text);

                        // Getting JSON Array node
                       JSONArray contacts = new JSONArray(response.toString());

                        // looping through All Contacts
                        for (int i = 0; i < contacts.length(); i++) {
                            JSONObject c = contacts.getJSONObject(i);

                             id = c.getString("_id");
                             email = c.getString("email");
                             firstName = c.getString("firstName");
                             lastName = c.getString("lastName");
                             userName = c.getString("userName");
 }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }

任何人都可以让我知道我在解析响应时遇到了什么错误。欢迎提出所有建议。

3 个答案:

答案 0 :(得分:1)

只需替换它即使用“_id”而不是“id”

id = c.getString("id");
email = c.getString("email");
firstName = c.getString("firstName");
lastName = c.getString("lastName");
userName = c.getString("userName");

答案 1 :(得分:1)

将此id = c.getString("_id");更改为id = c.getString("id");

将来,在解析时可能会在logcat中显示错误:

    catch (JSONException e) {
        e.printStackTrace();
        Log.e("TAG", e.getMessage());
    }

答案 2 :(得分:1)

我可以想到两件事,首先你应该知道什么是[],{}。方括号是json中的数组,并且卷曲演示了对象,所以我认为你错了

<强> 1&GT;

  

JSONArray contacts = new JSONArray(response.toString()); “这是罪魁祸首”

您应该将其更改为

  

的JSONObject。使用JSONObject代替JSONArray

和第二

<强> 2 - ;将此密钥更改为id = c.getString(“_ id”);更改为

  

id = c.getString(“id”);

确保您正在获取并编写所有键的拼写,否则会产生异常。