【问题标题】:i am facing this Problem E/catch ===: org.json.JSONException: No value for SorrySignUpFirst我正面临这个问题 E/catch ===: org.json.JSONException: No value for sorrySignUpFirst
【发布时间】:2019-04-25 15:09:15
【问题描述】:

我正在使用 PHP、MYSQL、Java Volley 库构建项目 问题是它不能同时工作所有 3 个得到这个错误

E/catch ===:org.json.JSONException:SorrySignUpFirst 没有值

SorrySignUpFirst,

SorrySignUpFirst,

LoginPasswordWrong

如果我评论 2 然后运行我的模拟器它的工作那么如何解决这个问题

PHP 代码

<?php

if ($_SERVER['REQUEST_METHOD'] == "POST")
{

    require_once("connection.php");
     $data_array = array();

    $login_email = $_POST['email'];
    $login_email = strip_tags($login_email);
    $login_email = str_replace(' ', '', $login_email); // remove spaces


    $login_password = $_POST['password'];
    $login_password = strip_tags($login_password);
    $email = str_replace(' ', '', $login_password); // remove spaces


    $db_email = mysqli_query($connection, "SELECT * FROM users WHERE email ='$login_email'");


    if (mysqli_num_rows($db_email) == 0)

    {

          $data_array['SorrySignUpFirst'] = "1";
           echo json_encode($data_array);

        mysqli_close($connection);

    }

    else
    {

       $data = mysqli_fetch_array($db_email);

        if (password_verify($login_password, $data['password']))
        {

    $data_array['LoginSuccessfull'] = "1";
    $data_array['id'] = $data['id'];
    $data_array['email'] = $data['email'];


    echo json_encode($data_array);

            mysqli_close($connection);

        }
        else
        {

             $data_array['LoginPasswordWrong'] = "1";

            echo json_encode($data_array);
            mysqli_close($connection);


        }

    }

}

?>

LoginActivity.java 代码

final StringRequest LoginstringRequest = new StringRequest(Request.Method.POST, URLS.LOGIN_API, new Response.Listener<String>() {

    @Override
    public void onResponse(String response) {

        try {

            JSONObject jsonObject = new JSONObject(response);

            String SorrySignUpFirst = jsonObject.getString("SorrySignUpFirst");
            String LoginSuccessfull = jsonObject.getString("LoginSuccessfull");
            String LoginPasswordWrong = jsonObject.getString("LoginPasswordWrong");


            if (SorrySignUpFirst.contains("1")) {
                Intent goToHomeScreenIntent = new Intent(LoginActivity.this, SignupActivity.class);
                startActivity(goToHomeScreenIntent);

                Toast.makeText(LoginActivity.this, "User Doen't Exist Sign Up", Toast.LENGTH_LONG).show();

            }

                if (LoginSuccessfull.contains("1")) {

                String id = jsonObject.getString("id");
                String fname = jsonObject.getString("email");

                Intent goToHomeScreenIntent = new Intent(LoginActivity.this, HomeScreenActivity.class);
                startActivity(goToHomeScreenIntent);

                Toast.makeText(LoginActivity.this, "id = " + id + "email == " + fname, Toast.LENGTH_LONG).show();

            }

            if (LoginPasswordWrong.contains("1")) {

                Toast.makeText(LoginActivity.this, "Password Wrong", Toast.LENGTH_LONG).show();

            }

           else {

                Toast.makeText(LoginActivity.this, "if else if Error", Toast.LENGTH_LONG).show();
            }

        } catch (JSONException e) {
            Toast.makeText(LoginActivity.this, "catch -- " + e.toString(), Toast.LENGTH_LONG).show();
            Log.e("catch === ", e.toString());
        }

    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {

        Toast.makeText(LoginActivity.this, "Error= 116" + error.toString(), Toast.LENGTH_LONG ).show();
        Log.i("Catch error 116  ====", error.toString());

    }
})



{

    @Override
    protected Map<String, String> getParams() throws AuthFailureError {
        Map<String, String> loginParams = new HashMap<>();
        loginParams.put("email", Email);
        loginParams.put("password", Password);
        return loginParams;
    }


};

RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(LoginstringRequest);

【问题讨论】:

  • 您需要等效于 isset() 或 (PHPised) jsonObject.getString("SorrySignUpFirst") ?? '0';
  • 先生,您能详细说明一下吗?????
  • 把这个echo json_encode($data_array);放在你的if-else声明之后,当你从你的服务器获得价值时,试着检查它是empty还是not

标签: java php mysql android-volley


【解决方案1】:

在我看来,您的 jsonObject 上没有名为 SorrySignUpFirst 的属性。

尝试在这一行设置断点:

String SorrySignUpFirst = jsonObject.getString("SorrySignUpFirst");

检查 jsonObject 并检查其上是否存在SorrySignUpFirst。

【讨论】:

  • 我想说的是,当我使用 SorrySignUpFirst 时,其他 2 会显示错误,例如 LoginSuccessfull 没有值和 LoginPasswordWrong 没有值
  • 它有 Sir { "SorrySignUpFirst": "1", "SignUpSuccessFull": "1", "LoginPasswordWrong": "1" }
  • 你有 Java 端的堆栈跟踪吗?
  • 2019-04-26 16:12:38.465 15327-15327/com.example.newmovieproject E/catch ===: org.json.JSONException:SorrySignUpFirst 2019-04-26 16 没有值:12:38.544 15327-15327/com.example.newmovieproject E/catch ===:org.json.JSONException:SorrySignUpFirst 没有值 2019-04-26 16:12:38.547 15327-15352/com.example.newmovieproject
猜你喜欢
  • 1970-01-01
  • 2021-05-28
  • 2022-11-28
  • 1970-01-01
  • 2020-07-25
  • 2020-06-14
  • 1970-01-01
  • 1970-01-01
  • 2023-02-22
相关资源
最近更新 更多