0

我正在使用一个名为 DataTables 的 jquery 插件,它需要我返回一个 json 字符串才能呈现表格。

目前,输出的 json 看起来像这样(参见 aaData 数组):

{"sEcho":0,"aaData":[[{"ID":"1","idPatient":"122342","idFacility":"3","idTreatment":"3"}]]}

我想知道 { } 大括号是否实际上应该在 aaData 数组中。事实上,我认为大括号实际上是导致 JSON 解析错误的原因。

下面列出了生成它的实际代码。(core->dbh是一个 PDO 句柄)

<?php

require_once('core/Core.php');
$core = Core::get_instance();

        $sql = 'SELECT ID, idPatient, idFacility, idTreatment
                FROM Pathology WHERE idPatient = 122342';

        $stmt = $core->dbh->prepare($sql);

        $stmt->setFetchMode(PDO::FETCH_ASSOC);

        // bind parameters
        $stmt->execute();

        // prepare output for DataTables

        $data = array("sEcho" =>intval($_GET['sEcho']),
                      "aaData" =>array()
        );

        while($result = $stmt->fetchAll()) {

                $data['aaData'][] = $result;

        }

            echo json_encode($data);


?>

有人可以告诉我如何删除花括号,或者 JSON 是否以另一种可能导致解析错误的方式格式不正确?

谢谢

4

1 回答 1

4

JSON很好。您正在通过 json_encode 使用 PHP 对其进行编码,这不是问题。我的猜测是,通过这样做$data['aaData'][] = $result;你嵌套了两次(见双括号)你的结果和插件失败。尝试这个:$data['aaData'] = $result;

于 2012-07-20T12:27:28.937 回答