我正在查询数据库并且查询成功。我创建一个数组,在其中我放置查询结果的值,然后我返回数组的json_encode。
$i=0;
while($row=$result->fetch()){
$Invoices[$i]=Array("InvoiceNo"=>$row['InvoiceNo'],"InvoiceDate"=>$row['InvoiceDate'],"CompanyName"=>$row['CompanyName'],"GrossTotal"=>$row['GrossTotal']);
$i++;
}
if($i==0)
echo json_encode($empty_array);
else
echo json_encode($Invoices);
这适用于谷歌浏览器,我有json查看器,它格式正确,但在Firefox中它不显示为json。当我尝试解析它时,它不起作用。尝试使用$ .Ajax和$ .getJSON
答案 0 :(得分:3)
您始终可以尝试使用header()
调用设置内容类型,在输出之前将以下内容添加到页面顶部:
header("Content-Type: application/json");
您还应该确保在实际的PHP代码之前没有任何空白区域,因为这也会在结果中发送,并且可能会干扰您的json响应。
在ajax调用中,您可以将dataType
设置为json
,如下所示:
$.ajax({
url:"<example.com/index.php>",
dataType:'json',
success:function(e) {
// e now should contain your json data
}
);
请注意:
“json”:将响应评估为JSON并返回JavaScript对象。 JSON数据以严格的方式解析;任何格式错误的JSON都会被拒绝,并抛出一个解析错误。从jQuery 1.9开始,空响应也被拒绝;服务器应该返回null或{}的响应。 (有关正确的JSON格式的更多信息,请参阅json.org。)