无法转换为java.lang.String的JSONObject

时间:2016-09-17 22:03:34

标签: android json

我在google中读到了一些关于错误的信息,我对php有点新鲜

org.json.JSONException: Value Record of type java.lang.String cannot be converted to JSONObject

这是我的php

$sqlchk="SELECT STATUS FROM OBJECTS WHERE ID=$id";
$res = mysqli_query($con,$sqlchk);

$result = array();

while($row = mysqli_fetch_array($res)){
array_push($result,
array('ID'=>$row[0],
'STATUS'=>$row[1]
));
}


echo json_encode(array("result"=>$result));

这是我的代码java

try {
    try {
        responses = client.newCall(request).execute();
    } catch (IOException e) {
        e.printStackTrace();
    }
    String jsonData = responses.body().string();
    JSONObject Jobject = new JSONObject(jsonData);
    JSONArray Jarray = Jobject.getJSONArray("result");

    if (!responses.isSuccessful()) throw new IOException("Unexpected code " + responses);


    for (int i = 0; i < Jarray.length(); i++) {
        JSONObject object     = Jarray.getJSONObject(i);
        String    prize = object.getString("STATUS");
        System.out.println(prize);
    }
} catch (JSONException e) {
        Log.e("MYAPP", "unexpected JSON exception", e);
}
    catch (Exception e) {
   Log.e("MYAPP", "unexpected io exception", e);
}

编辑1

$id= isset($_POST['id']) ? intval($_POST['id']) : null;
$likes= isset($_POST['likes']) ? intval($_POST['likes']) : null;


$conn = mysqli_connect($host,$uname,$pwd,$db) or die(mysqli_error());

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "UPDATE OBJECTS SET LIKES=$likes where ID=$id ";


if ($conn->query($sql) === TRUE) {

} 

$sqlchk="SELECT ID,STATUS FROM OBJECTS WHERE ID=$id";
$res = mysqli_query($conn,$sqlchk);

$result = array();

while($row = mysqli_fetch_array($res)){
array_push($result,
array('ID'=>$row[0],
'STATUS'=>$row[1]
));
}


echo json_encode(array("result"=>$result));



$conn->close();

1 个答案:

答案 0 :(得分:1)

您需要先修复PHP代码并确保它为您提供正确的JSON字符串。要验证,请尝试使用正确的POST标头(id和like)手动访问php文件。