0

我有 JSON Web 服务,当有效和无效登录时,Web 服务的节点名称会发生​​变化。

我已经编写了有效 Web 服务的代码。现在当无效登录当时节点名称发生变化时,那么如何识别有效和无效的身份验证?

有效登录

{
root: [
{
Login: {
uid: "1",
uname: "aaa",
email: "aaa@far.com",
}
}
]
}

登录无效

{
root: [
{
Result: {
Result: "Login failed"
}
}
]
}

有效登录时代码正在工作,我的问题是当登录无效时如何检查

因为节点名称从“登录”更改为“结果”

        Toast.makeText(getApplicationContext(), result,
          Toast.LENGTH_LONG).show();

        Log.e("log_tag", "root :" + result.toString());

        JSONObject json_data = new JSONObject(result);

        String root = json_data.getString("root");

        Toast.makeText(getApplicationContext(), root, Toast.LENGTH_LONG).show();

        JSONArray json_array = new JSONArray(root);

        json_data = json_array.getJSONObject(0);

        String Login = json_data.getString("Login");

        Toast.makeText(getApplicationContext(), Login, Toast.LENGTH_LONG).show();

        json_data = new JSONObject(Login);

        String email = json_data.getString("email");

        Toast.makeText(getApplicationContext(), email, Toast.LENGTH_LONG).show()
4

1 回答 1

0

以这种方式解析和读取结果:

JSONObject json_data = new JSONObject(result);
JSONObject root = json_data.getJSONArray("root").getJSONObject(0);
if (root.has("Result")) {
    JSONObject loginRes = root.getJSONObject("Result");
    if (loginRes.has("Result")) {
         String status = loginRes.getString("Result");
         if (status.equalsIgnoreCase("Login failed")) {
             // LOGIN FAILED!
         }
    }
}

注意:您的 JSON 格式似乎很差(逻辑上),并且包含一些不必要的项目。您可能想要简化它。

于 2013-04-03T14:36:48.440 回答