0

JSON Web サービスがありますが、有効なログインと無効なログインで Web サービスのノード名が変更されます。

有効な Web サービスのコードを記述しました。その時点で無効なログインがノード名を変更すると、有効な認証と無効な認証を識別する方法は?

有効なログイン

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

不正なログイン

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

有効なログイン時にコードが機能しています。私の問題は、無効なログイン時のチェック方法です。

ノード名が「Login」から「Result」に変更されたため

        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 に答える