在 PHP 页面A.php,这样:
不存在任何问题.<?php  $str='{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}'; ?>
$(document).ready(function () { 

var obj = jQuery.parseJSON('{"name":"John","name1":"John1"}');
alert(obj.name);
//debugger;
//var obj1 = jQuery.parseJSON('{"total":2,"rows":"HHH"}');
var obj1 = jQuery.parseJSON('{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}');
var obj2 = jQuery.parseJSON('<?php echo $str;?>');
});
 
obj1 和 obj2  可以通过 jQuery 的 JSON 验证.现在添加 页面 json.php 内容如下:header('Content-Type:text/html;charset=utf-8'); 
echo '{"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}';修改 A.php ,添加一下代码:
$.ajax({ url:"json.php",
        dataType:"json",
        success: function(){ alert("成功");},
        error:function(){ alert("错误");}
});该代码不能通过 jQuery 的 Json 验证.提示错误如下:
"Invalid JSON: {"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}"
请大家帮我分析一下,是什么原因导致?服务器环境. Linux+PHP5

解决方案 »

  1.   

    自己先通过浏览器访问以下你的json页面
      

  2.   


    RE:这个步骤,我已经做了。内容如下:
    {"total":2,"rows":[{"Id":"1","UserName":"Admin","NickName":"Hi.PHP","Enable":"1","Sex":"1"},{"Id":"2","UserName":"Test","NickName":"User","Enable":"1","Sex":"-1"}]}
      

  3.   

    {"total
    这里似乎有个不可见的字符,用16进制查看编码为FF FE,这两个字节好像是文件编码标志。
    把json.php中的header('Content-Type:text/html;charset=utf-8'); 这一句删掉试试。
      

  4.   


    文件编码,我重新统一保存为 utf-8但问题还是存在,不过,如果,我在 A.php 这些处理 jQuery 就不存在 json 验证是失败的问题$.ajax({ url:"json.php",
      success: function(){ alert("成功");},
      error:function(){ alert("错误");}
    });
    去掉   dataType:"json" 这个配置。添加上,就不行.
      

  5.   

    去掉 json.php 文件的 BOM 头
      

  6.   


    我把所有文件的 BOM 头处理了.的确可行,3Q...
      

  7.   


    一开始写的 字符串的可以了。无语了...用 PHP 动态生成有出问题了.