我使用的是一个名为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的格式不正确,可能会导致解析错误?
感谢
JSON很好。您通过json_encode用PHP对其进行编码,这不会是问题所在。我的猜测是,通过这样做$data['aaData'][] = $result;
,你嵌套了两次(见双括号)结果,插件失败了。试试这个:$data['aaData'] = $result;