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”}]
答案 0 :(得分:0)
您提到的JSON字符串以&#34; [&#34;并以&#34;]&#34;结束。这代表一个数组。 JSON对象以&#34; {&#34;以&#34;}&#34;结束。
您需要摆脱围绕JSON字符串的方括号。这将解决您的问题。
如果不可能,您可以从字符串创建JSONArray,然后使用它中的第一项来获取名称和电子邮件等属性。
JSONArray jsonArray = new JSONArray(response);
JSONObject obj = jsonArray.getJSONObject(0);
这可以解决您的问题。