【问题标题】:conversion php multidimensional associative array to json将php多维关联数组转换为json
【发布时间】:2015-10-25 00:42:18
【问题描述】:

我有一个来自 mysql 表的多维关联数组,如下所示:

$i = 0;
$data = array();
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
$arr = array();
$arr['id'] = $i;
$arr['code'] = $row['code'];
$arr['name'] = $row['name'];
$data[$i] = $arr;
$i++;
}

我会通过这个脚本将这些数组转换为 json

var data  = <?php echo json_encode($data, JSON_PRETTY_PRINT) ?>;

但是没有响应,所以我尝试了这个脚本

var data  = <?php echo json_encode($data) ?>;

这两个脚本都没有给出正确的结果

所以我尝试了以下脚本的其他方法,以生成一个字符串变量,进一步将其转换为 json

$i = 0;
$data = '[';
while($row = $result->fetch_array(MYSQLI_ASSOC)) {
if ($data != "[") {$data .= ",";}
$data .= '{"id":"'  . $i . '",';
$data .= '"code":"' . $row["code"] . '",';
$data .= '"name":"' . $row["name"] . '"}'; 
$i++;
}
$data .="]";

然后我用这些脚本更改为 json:

var data = <?php echo $data ?>;

结果还是错

有什么改进的建议吗,谢谢

【问题讨论】:

  • edit 你的问题包括被吐出的坏JSON。感谢您提高问题的参考价值并使其更易于回答!

标签: php mysql arrays json multidimensional-array


【解决方案1】:

在返回 json 数组之前尝试提供一个标头。在编码你的 json 之前添加部分 header('Content-Type: application/json'); 这样你就可以将 $data 作为 JSON 传递给浏览器

header('Content-Type: application/json');
echo json_encode(array('success' => TRUE, 'data' => $data));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-20
    • 2012-05-16
    • 1970-01-01
    相关资源
    最近更新 更多