org.json.JSONException中的错误:类型为org.json.JSONArray的错误无法转换为JSONObject

时间:2017-02-07 10:38:34

标签: json

  StringRequest stringRequest = new StringRequest(
                Request.Method.POST,
                Configs.Login,
                new Response.Listener<String>() {
                    @Override
                    public void onResponse(String response) {
                        progressDialog.dismiss();
                        try {
                            JSONObject obj = new JSONObject(response);
                            if(!obj.getBoolean("error")){

                                startActivity(new Intent(getApplicationContext(), MainActivity.class));
                                finish();
                            }else{
                                Toast.makeText(
                                        getApplicationContext(),
                                        obj.getString("message"),
                                        Toast.LENGTH_LONG
                                ).show();
                            }
                        } catch (JSONException e) {
                            e.printStackTrace();
                        }
                    }
                },
                new Response.ErrorListener() {
                    @Override
                    public void onErrorResponse(VolleyError error) {
                        progressDialog.dismiss();

                        Toast.makeText(
                                getApplicationContext(),
                                error.getMessage(),
                                Toast.LENGTH_LONG
                        ).show();
                    }
                }
        )
            @Override

我收到显示

的JSON格式的错误

org.json.JSONException:类型为org.json.JSONArray无法转换为JSONObject

这是我的JSON格式

[{ “ID”: “1”, “诺姆”: “管理员”, “电子邮件”: “p_asr@hotmail.com”, “密码”: “XXXXXXX”}]

1 个答案:

答案 0 :(得分:0)

您提到的JSON字符串以&#34; [&#34;并以&#34;]&#34;结束。这代表一个数组。 JSON对象以&#34; {&#34;以&#34;}&#34;结束。

您需要摆脱围绕JSON字符串的方括号。这将解决您的问题。

如果不可能,您可以从字符串创建JSONArray,然后使用它中的第一项来获取名称和电子邮件等属性。

JSONArray jsonArray = new JSONArray(response);
JSONObject obj = jsonArray.getJSONObject(0);  

这可以解决您的问题。