首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >寄存器错误: org.json.JSONException: java.lang.String类型的值<br无法转换为JSONObject

寄存器错误: org.json.JSONException: java.lang.String类型的值<br无法转换为JSONObject
EN

Stack Overflow用户
提问于 2019-04-16 06:03:52
回答 2查看 367关注 0票数 0

我正在启动一个登录和用户注册的android项目。当我编译时,得到这个错误。有人能帮我吗?

错误:无法将类型为java.lang.String的org.json.JSONException值

值已成功上载到本地主机,但错误仍然存在。我认为类代码中的函数Cadastro()一定有一些错误。

类:

代码语言:javascript
复制
public class CadastroActivity extends AppCompatActivity {
private EditText nome, email, senha, c_senha;
private Button btn_cadastrar;
private ProgressBar loading;
private static String URL_REGISTRO = 
"http://192.168.0.17/gbprata/registro.php";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cadastro);
    getSupportActionBar().hide();

    loading = findViewById(R.id.loading);
    nome = findViewById(R.id.edit_Nome);
    email = findViewById(R.id.edit_EmailCadastro);
    senha = findViewById(R.id.edit_SenhaCadastro);
    c_senha = findViewById(R.id.edit_RepeteSenha);
    btn_cadastrar = findViewById(R.id.button_cadastrarse);


    btn_cadastrar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Cadastro();
        }
    });
}
private void Cadastro(){
    loading.setVisibility(View.VISIBLE);
        btn_cadastrar.setVisibility(View.GONE);

        final String nome = this.nome.getText().toString().trim();
        final String email = this.email.getText().toString().trim();
        final String senha = this.senha.getText().toString().trim();
        final String c_senha = this.c_senha.getText().toString().trim();

    StringRequest StringRequest = new StringRequest(Request.Method.POST, URL_REGISTRO,
            new Response.Listener<String>() {
                @Override
                public void onResponse(String response) {
                try {
                    JSONObject jsonObject = new JSONObject(response);
                    String success = jsonObject.getString("success");

                    if (success.equals("1")){
                        Toast.makeText(CadastroActivity.this, "Registrado com sucesso!", Toast.LENGTH_SHORT).show();
                    }

                } catch (JSONException e) {
                    e.printStackTrace();
                    Toast.makeText(CadastroActivity.this, "Erro ao registrar! "+e.toString(), Toast.LENGTH_SHORT).show();
                    loading.setVisibility(View.GONE);
                    btn_cadastrar.setVisibility(View.VISIBLE);
                }
                }
            },
            new Response.ErrorListener() {
                @Override
                public void onErrorResponse(VolleyError error) {
                    Toast.makeText(CadastroActivity.this, "Erro ao registrar! "+error.toString(), Toast.LENGTH_SHORT).show();
                    loading.setVisibility(View.GONE);
                    btn_cadastrar.setVisibility(View.VISIBLE);
                }
            })
    {
        @Override
        protected Map<String, String> getParams() throws AuthFailureError {
            Map<String,String> params = new HashMap<>();
            params.put("nome", nome);
            params.put("email", email);
            params.put("senha", senha);
            return params;
        }
    };

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

}

}

PHP文件

代码语言:javascript
复制
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

    $nome = $_POST['nome'];
    $email = $_POST['email'];
    $senha = $_POST['senha'];

    $senha = password_hash($senha, PASSWORD_DEFAULT);

    require_once 'conexao.php';

    $sql = "
        INSERT INTO tb_alunos (nome, email, senha) VALUES ('$nome', '$email', '$senha');
    ";
    if (mysqli_query($conn, $sql)) {
        $result["success"] = "1";
        $result["menssage"] = "success";

        echo_json_encode($result);
        mysqli_close($conn);
    } else {
        $result["success"] = "0";
        $result["menssage"] = "error";

        echo_json_encode($result);
        mysqli_close($conn);
    }
}



?>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-16 09:13:29

您很可能得到了损坏的PHP代码,代码行

代码语言:javascript
复制
echo_json_encode($result);

应该是这样的:

代码语言:javascript
复制
echo json_encode($result);
票数 0
EN

Stack Overflow用户

发布于 2019-04-16 08:28:40

在这里,您将直接为json字符串"success“赋值。

代码语言:javascript
复制
String success = jsonObject.getString("success");

将其替换为以下代码

代码语言:javascript
复制
String success = jsonObject.getString("success").toString();

试试看..希望它对你有用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55697825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档