You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android注册功能JSON转换异常:无法写入数据库问题排查求助

Android注册程序JSONException排查与修复

问题概述

注册流程抛出org.json.JSONException,错误信息为java.lang.String的Value <br无法转换为JSONObject,导致数据无法写入数据库,疑似MainActivity存在问题。

核心原因

该异常表明客户端收到的响应不是合法JSON格式,而是包含HTML换行标签<br>的文本内容——大概率是后端Api.php执行出错,输出了PHP原生错误提示(带HTML格式),而非预期的JSON响应。

排查修复步骤

1. 优先排查后端Api.php

  • 直接在浏览器/接口调试工具中调用注册接口,传入测试参数,查看返回内容:
    • 如果返回带<br>的错误文本(比如PHP语法错误、数据库连接失败提示),先修复后端问题:
      • 给Api.php添加全局错误捕获,确保无论成功/失败都输出合法JSON:
        <?php
        header('Content-Type: application/json'); // 强制设置响应头为JSON类型
        try {
            // 数据库连接、注册逻辑代码
            $result = ["success" => true, "msg" => "注册成功"];
            echo json_encode($result);
        } catch (Exception $e) {
            $error = ["success" => false, "msg" => $e->getMessage()];
            echo json_encode($error);
        }
        ?>
        
      • 检查数据库连接语句、SQL语法是否正确,避免因后端报错输出非JSON内容。

2. 检查MainActivity的网络请求处理

  • 在解析响应前,先打印完整响应内容,确认是否包含HTML标签:
    // 以Volley请求回调为例
    @Override
    public void onResponse(String response) {
        Log.d("REG_RESPONSE", "完整响应: " + response); // 打印响应日志
        try {
            JSONObject jsonResp = new JSONObject(response);
            // 后续注册成功/失败逻辑
        } catch (JSONException e) {
            Log.e("JSON_PARSE_ERROR", "非法响应内容: " + response);
            // 提示用户服务器异常
        }
    }
    
  • 确保请求头设置正确,让后端能正确解析参数:
    // 示例OkHttp请求的请求头设置
    RequestBody formBody = new FormBody.Builder()
            .add("username", etUsername.getText().toString())
            .add("password", etPassword.getText().toString())
            .build();
    Request request = new Request.Builder()
            .url(REGISTER_API_URL)
            .post(formBody)
            .addHeader("Content-Type", "application/x-www-form-urlencoded")
            .build();
    

3. SharedPrefManager校验

确认SharedPrefManager仅在解析合法JSON后存储用户数据,避免传入未处理的错误响应字符串。

错误提示说明

错误截图显示异常栈指向JSON解析步骤,明确提示无法将包含<br>标签的字符串转换为JSONObject,进一步验证了响应内容非法的结论。

内容的提问来源于stack exchange,提问作者Syarief Rahman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.16 00:27:30