getJSON解析器无法处理PHP文件的JSON输出

前端之家收集整理的这篇文章主要介绍了getJSON解析器无法处理PHP文件的JSON输出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 PHP脚本,它从我的sql Server返回以下json:

<?PHP

$server = "DEVTEST-PC\\SRVCLT";
$options = array("UID"=>"sa","PWD"=>"1234","Database"=>"Test");
$conn = sqlsrv_connect($server,$options);


if ($conn === false) die("<pre>".print_r(sqlsrv_errors(),true));
//echo "Successfully connected!";


$result = sqlsrv_query($conn,"SELECT Currency,USDRate FROM Pax.CurrencyRate
WHERE GBPRate BETWEEN 80 AND 800;");

if($result === false) {
    die( print_r( sqlsrv_errors(),true) );
}

while( $row = sqlsrv_fetch_array($result,sqlSRV_FETCH_ASSOC) ) {

     $myArray['paxcurjson'][] = $row;
}
     echo json_encode($myArray);
?>

输出如下:

{"paxcurjson":[
{"Currency":"AFN","USDRate":49.5},{"Currency":"ALL","USDRate":103.567},{"Currency":"BDT","USDRate":77.562},{"Currency":"DZD","USDRate":79.6146}]}

我正在使用Jquery来解析它但由于某种原因它无法解析.我的代码如下:

<script type = "text/javascript" language = "javascript" >

     var url = 'CurrencyQuery.PHP';

       $.getJSON(url,function(data){

          for (i = 0; i < data.paxcurjson.length; i++) {

              console.log(data.paxcurjson[2].Currency);

          };

        });

</script>

我从控制台获取的唯一错误消息是:

08:52:52.661找不到元素1 CurrencyQuery.PHP:24:4

这基本上是指我的PHP脚本返回json.我不知道为什么这不起作用.我已经使用在线验证器验证了JSON,看起来没问题和Jquery,它应该没问题.谁能给我一个线索?

解决方法

需要在PHP输出中更改一些东西以使其由Javascript或JQuery处理

<?PHP
//just set a header before output
header('Content-Type:application/json;');
echo json_encode($myArray);

这对我来说总是有用的.

还有一件事,当你需要使用PHP输出作为JSON API在JQuery中进行解析等…我建议你将错误处理设置为false,因为PHP显示错误可能导致json输出无法读取json

猜你在找的Json相关文章