解析错误!无法解析 无法解析 stringorg.json.JSONException:类型为 java.lang.St


Parsing error! Can't parse Can't parse the stringorg.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject

我目前正在研究与数据库连接相关的安卓项目。作为应用程序的一部分,有一个活动形成将数据插入数据库并检索响应,无论是否插入。活动将数据正确插入数据库 但是,它会触发 JSON 解析异常,无法获取响应。这是我的日志猫 scrreen:

03-31 09:49:38.196: D/JSON String:(884): Connection Error
03-31 09:49:38.236: D/Parsing Error!(884): Can't parse the stringorg.json.JSONException: Value <br of type java.lang.String cannot be converted to JSONObject
03-31 09:49:38.236: D/Exception!(884): java.lang.NullPointerException
03-31 09:49:38.526: W/InputMethodManagerService(373): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@b410d300 attribute=null, token = android.os.BinderProxy@b40b3160

这是我的PHP数据库连接脚本:config.inc.php我觉得有问题!!

<?php
    $username = "homeyadmin";
    $password = "8YvUPxCsVHEca2Ru";
    $host = "localhost";
    $dbname = "homey_db";
    //Communicate via UTF8
    $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');
    try {
        //Is this required??
        // $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
        mysql_connect('localhost','$username','$password') or die("Connection Error");
        mysql_select_db($dbname) or die("no db found");
    } catch(PDOException $ex) {
        die("Failed to connect to Database!" +$ex.toString());
    }
    /*header('Content-Type: text/html; charset=utf-8');
    session_start();*/
?>

最后是 JSONParser 类:

        public JSONObject makeHttpRequest(String url, String method, List<NameValuePair> params) {
            try {
                if (method == "POST") {
                    DefaultHttpClient httpClient = new DefaultHttpClient();
                    HttpPost httpPost = new HttpPost(url);
                    httpPost.setEntity(new UrlEncodedFormEntity(params));
                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    HttpEntity httpEntity = httpResponse.getEntity();
                    is = httpEntity.getContent();
                    Log.d("Input Stream:", is.toString());
                } else if (method == "GET") {
                    DefaultHttpClient httpClient = new DefaultHttpClient();
                    String paramString = URLEncodedUtils.format(params, "utf8");
                    url += "?" +paramString;
                    HttpGet httpGet = new HttpGet(url);
                    HttpResponse httpResponse = httpClient.execute(httpGet);
                    HttpEntity httpEntity = httpResponse.getEntity();
                    is = httpEntity.getContent();
                } 
            } catch (Exception ex) {
                ex.toString();
            }
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"),8);
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = reader.readLine()) != null) {
                    sb.append(line + "'n");
                }
                is.close();
                json = sb.toString();
                Log.d("JSON String:", json);
            } catch (Exception e) {
                Log.d("Buffer Error!", "Can't convert result" +e.toString());
            }
            //Time to parse the string into JSONObject
            try {
                jobj = new JSONObject(json);
            } catch (JSONException ex) {
                Log.d("Parsing Error!", "Can't parse the string" +ex.toString());
            }
            return jobj;        
        }
}

这是我的 php 代码

<?php
require("config.inc.php"); 
    if(!empty($_POST)){
        if (empty($_POST['FNAME']) || empty($_POST['LNAME']) || empty($_POST['EMAIL']) || empty($_POST['PASS'])
        || empty($_POST['HNAME']) || empty($_POST['HPNO']) || empty($_POST['HADD2']) 
        || empty($_POST['HLANDMARK']) || empty($_POST['HNAME'])
        || empty($_POST['HCOUNTRY']) || empty($_POST['HSTATE']) 
        || empty($_POST['HCITY']) || empty($_POST['HPHONE'])) {
            //Creating JSON response
            $response["success"] = 0;
            $response["message"] = "All the fields are required!";
            die(json_encode($response));
        }
        //List OF variables
        $fname = $_POST['FNAME'];
        $lname = $_POST['LNAME'];
        $email = $_POST['EMAIL'];
        $pass = $_POST['PASS'];
        $hname = $_POST["HNAME"];
        $hpno = $_POST["HPNO"];
        $hadd2 = $_POST["HADD2"];
        $hland = $_POST["HLANDMARK"];
        $hcon = $_POST["HCOUNTRY"];
        $hstate = $_POST["HSTATE"];
        $hcity = $_POST["HCITY"];
        $hphone = $_POST["HPHONE"];     
        //If page not died
        $result = mysql_query("SELECT 1 FROM owner_info WHERE owner_email = '$email'");
        $num = mysql_num_rows($result);
        echo $num;
        $i = 0;
        if($num = $i) {
            //JSON Response
            $response["success"] = 0;
            $response["message"] = "Email ID is already in use!";
            die(json_encode($response));
        }
        //If None of these condition followed
        $query = "INSERT INTO
            owner_info (owner_fname, owner_lname, owner_email, owner_pass)
            VALUES('$fname', '$lname', '$email', '$pass')
        ";
        if(mysql_query($query)){
            echo "done";
        }else{
            echo mysql_error();
        }
        $result1 = mysql_query("SELECT owner_id
            FROM owner_info
            WHERE owner_email = '$email'
        ");
        if ($result1) {
            while ($row = mysql_fetch_assoc($result1)) {
                echo $temp_owner_id = $row['owner_id'];
            }
            mysql_query("INSERT INTO
                hostel_info (h_owner_id, h_name, h_plot_no, h_address2, h_landmark, h_country, h_state, h_city, h_contact_no)
                VALUES ('$temp_owner_id', '$hname', '$hpno', '$hadd2', '$hland', '$hcon', '$hstate', '$hcity', '$hphone')
            ");
            $response["success"] = 1;
            $response["message"] = "Data inserted successfully.";
            die(json_encode($response));
        } else {
            $response["success"] = 0;
            $response["message"] = "Database Error!!";
            die(json_encode($response));    
        }
    }

请帮助伙计们!!

您得到的是无效的 JSON,这就是它没有被解析的原因。只需添加以下代码即可查看您从服务器获得的内容:

    try {
            jobj = new JSONObject(json);
        } catch (JSONException ex) {
            Log.d("Parsing Error!", "Can't parse the string" +ex.toString());
            Log.d("STRING_FROM_SERVER", json);
        }