ANDROID& PHP - 为什么我收到此JSONArray解析错误

时间:2016-10-24 06:46:57

标签: php android mysql json

我已尝试过各种方法,使用PHP和JSON从我的托管here向MySQL显示数据到android,但总是得到这样的错误 Screenshot_2016-10-22-15-52-56-359_flix.yudi.okh.png

但是当我请求具有相同JSON结果的另一个link时,其工作正常

我试图找出答案,我建议在我的托管中启用DEPENDENCIES = dep1 dep2 dep3 ... for each DEP in $(DEPENDENCIES) $(DEP) : $(MAKE) -C ext/$@ ,但我没有找到如何在我的托管中启用JavaScript的参考资料,

此处是JavaScript

PHP代码
encode_JSON

我是否使用错误的代码来编写PHP的encode_json?

<?php include 'dbconfig.php'; $con = new mysqli($servername, $username, $password, $dbname); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $query = "select id,ask from pertanyaan"; $result = mysqli_query($con, $query); $rows = array(); while ($r = mysqli_fetch_array($result)) { $rows[] = $r; } echo json_encode(array_values($rows)); mysqli_close($con); ?>

EDITED AFTER ADD header('Content-Type: application/json'); notif

LogCat

2 个答案:

答案 0 :(得分:1)

比较给出两个请求。您还没有将PHP脚本中的标头设置为JSON。 要将Content-type标头设置为JSON,请在PHP脚本中放入以下代码

header('Content-Type: application/json');

它会起作用。 你的android代码没有错误,因为第二个url给出了所需的结果。此外,我认为编码JSON时没有任何问题。

在比较两个链接时,请检查请求中的Content-type标头,两者都不同。 enter image description here

enter image description here

答案 1 :(得分:1)

你可以试试这个。

<?php
    include 'dbconfig.php';
    $con = new mysqli($servername, $username, $password, $dbname);
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $query = "select id,ask from pertanyaan";

    $result = mysqli_query($con, $query);


    while ($r = mysqli_fetch_array($result)) {
        extract($r);
   $rows[] = array(
    "id"=>$id,
   "ask"=>$ask
      );
    }
   header('Content-Type: application/json');
     echo json_encode($rows);

    mysqli_close($con);
?>