Java JSONException:没有错误值

Java JSONException:没有错误值,java,android,android-volley,Java,Android,Android Volley,我得到以下错误: JSONException: No value for error 在Android Studio中的我的日志(链接查看我日志的屏幕截图:)上,它说原因在于以下代码行: boolean error = jObj.getBoolean("error"); AppConfig.URL_LOGIN, new Response.Listener<String>() { 另一个原因是这一行代码: boolean error = jObj.getBoolean("erro

我得到以下错误:

JSONException: No value for error
在Android Studio中的我的日志(链接查看我日志的屏幕截图:)上,它说原因在于以下代码行:

boolean error = jObj.getBoolean("error");
AppConfig.URL_LOGIN, new Response.Listener<String>() {
另一个原因是这一行代码:

boolean error = jObj.getBoolean("error");
AppConfig.URL_LOGIN, new Response.Listener<String>() {
另一方面,来自服务器的响应看起来不同。我已将其登录到我的应用程序,以下是输出:

output user
{ _id: 5650e78597f6e98413a737d4,
  name: 'b',
  email: 'b@hotmail.com',
  hashed_password: 'r+rDSXpJtFl7rXzUNyNbhAwgBSNq5uk2khARiyHyqUzTNF8dkXbUhRhErvMfsUMpUxg89zFWw57uOlI7O006aw==',
  salt: 'gzoxOSNZkTvOHyl9xzKZAg==',
  username: 'b',
  __v: 0,
  provider: 'local',
  roles: [ 'authenticated' ] }
end output user
POST /api/login 200 355 - 54.181 ms
11-22 19:34:30.374 3668-3668/? I/System.out: output response
11-22 19:34:30.375 3668-3668/? I/System.out: {"token":"eyJhbGciOiJIUzI1NiJ9.JTdCJTIyX2lkJTIyOiUyMjU2NTBlNzg1OTdmNmU5ODQxM2E3MzdkNCUyMiwlMjJuYW1lJTIyOiUyMmIlMjIsJTIyZW1haWwlMjI6JTIyYkBob3RtYWlsLmNvbSUyMiwlMjJ1c2VybmFtZSUyMjolMjJiJTIyLCUyMl9fdiUyMjowLCUyMnByb3ZpZGVyJTIyOiUyMmxvY2FsJTIyLCUyMnJvbGVzJTIyOiU1QiUyMmF1dGhlbnRpY2F0ZWQlMjIlNUQlN0Q.eXM6a4dUMDMv2feQpzbgi0q355jbINXI5ErlP_jKNk0","redirect":"/"}
11-22 19:34:30.375 3668-3668/? I/System.out: end output response
我通过一个链接发布我的方法,因为该方法太大,无法在这里发布。在下面的链接中,您可以看到我的方法:


正如错误明确指出的那样

JSONException: No value for error
这意味着它无法找到
错误
键。在代码中

                System.out.println("output response");
                System.out.println(response);
                System.out.println("end output response");
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");
从服务器获得的响应

{"token":"eyJhbGciOiJIUzI1NiJ9.JTdCJTIyX2lkJTIyOiUyMjU2NTBlNzg1OTdmNmU5ODQxM2E3MzdkNCUyMiwlMjJuYW1lJTIyOiUyMmIlMjIsJTIyZW1haWwlMjI6JTIyYkBob3RtYWlsLmNvbSUyMiwlMjJ1c2VybmFtZSUyMjolMjJiJTIyLCUyMl9fdiUyMjowLCUyMnByb3ZpZGVyJTIyOiUyMmxvY2FsJTIyLCUyMnJvbGVzJTIyOiU1QiUyMmF1dGhlbnRpY2F0ZWQlMjIlNUQlN0Q.eXM6a4dUMDMv2feQpzbgi0q355jbINXI5ErlP_jKNk0","redirect":"/"}
只有两把钥匙。一个是
标记
,另一个是
重定向
。您试图在下面的一行中找到此中的
错误
,因此导致其崩溃

boolean error = jObj.getBoolean("error");
要解决上述问题,您可以在获取其值之前检查
JSONObject
是否包含
error
键。大概是

JSONObject jObj = new JSONObject(response);
if(jObj.contains("error")){
    boolean error = jObj.getBoolean("error");
}

正如错误明确指出的那样

JSONException: No value for error
这意味着它无法找到
错误
键。在代码中

                System.out.println("output response");
                System.out.println(response);
                System.out.println("end output response");
                JSONObject jObj = new JSONObject(response);
                boolean error = jObj.getBoolean("error");
从服务器获得的响应

{"token":"eyJhbGciOiJIUzI1NiJ9.JTdCJTIyX2lkJTIyOiUyMjU2NTBlNzg1OTdmNmU5ODQxM2E3MzdkNCUyMiwlMjJuYW1lJTIyOiUyMmIlMjIsJTIyZW1haWwlMjI6JTIyYkBob3RtYWlsLmNvbSUyMiwlMjJ1c2VybmFtZSUyMjolMjJiJTIyLCUyMl9fdiUyMjowLCUyMnByb3ZpZGVyJTIyOiUyMmxvY2FsJTIyLCUyMnJvbGVzJTIyOiU1QiUyMmF1dGhlbnRpY2F0ZWQlMjIlNUQlN0Q.eXM6a4dUMDMv2feQpzbgi0q355jbINXI5ErlP_jKNk0","redirect":"/"}
只有两把钥匙。一个是
标记
,另一个是
重定向
。您试图在下面的一行中找到此中的
错误
,因此导致其崩溃

boolean error = jObj.getBoolean("error");
要解决上述问题,您可以在获取其值之前检查
JSONObject
是否包含
error
键。大概是

JSONObject jObj = new JSONObject(response);
if(jObj.contains("error")){
    boolean error = jObj.getBoolean("error");
}

这意味着在您的响应中没有名为“error”的键。如您所见,您的响应包含两个键。。。“token”和“redirect”表示响应中没有名为“error”的键。如您所见,您的响应包含两个键。。。“令牌”和“重定向”我还有一个小问题,这样做对吗?代码链接:我还有一个小问题,这样做对吗?链接到代码: