得到JSON不适合我

时间:2011-03-11 16:23:19

标签: php jquery json

我制作了解析JSON对象的php文件。这是php的结果示例:

{"ID":"951","NameOfEvent":"\u05dc\u05d9\u05d9\u05df \u05d4\u05e7\u05e8\u05d9\u05d5\u05e7\u05d9 \u05d1\u05e9\u05dc\u05d9\u05e9\u05d9","Plan":"\u05d4\u05d2\u05d5\u05e8\u05df - \u05dc\u05d9\u05d9\u05df \u05d4\u05e7\u05e8\u05d9\u05d5\u05e7\u05d9 \u05d1\u05e9\u05dc\u05d9\u05e9\u05d9 @ \u05d4\u05d2\u05d5\u05e8\u05df.\r\n\r\n\u05de\u05d5\u05e2\u05d3\u05d5\u05df \u05d4\u05d2\u05d5\u05e8\u05df \u05e9\u05d5\u05db\u05df \u05d1\u05e7\u05d9\u05d1\u05d5\u05e5 \u05de\u05e8\u05d7\u05d1\u05d9\u05d4 \u05e9\u05d1\u05e2\u05de\u05e7 \u05d9\u05d6\u05e8\u05e2\u05d0\u05dc.","Avg":"0","Views":"23"}

我尝试使用以下jquery代码获取数据:

function gettopevents()
{
$.getJSON("jsontopevents.php", function(json) {
    alert(json.NameOfEvent);
});
}

我通过使用带onclick事件的按钮调用该函数。

我不知道我的功能有什么问题...我使用相同的功能从facebook图表中读取数据并且它有效..

编辑:奇怪的事情 - 它适用于IE但不适用于FF和Chrome

感谢。

1 个答案:

答案 0 :(得分:3)

你引用的内容有效:http://jsbin.com/iwumu4在Windows上的IE6,IE7,IE8,Chrome 9,Firefox 3.6,Safari 5和Opera 11中尝试过它; Linux上的Chrome 9,Firefox 3.6和Opera 11。

这表明问题出在代码的其他地方。最好的办法是使用调试器。 Chrome,Safari,Opera和IE8都有内置调试器。您可以获得Firefox的Firebug,VS.Net将在IE6和IE7上调试JavaScript。在调试器中,首先查看控制台,以查看是否报告了任何错误。如果没有,请在$.getJSON调用和alert上设置断点,然后检查数据。

更新(在下面的注释之后。)啊,听起来像是一个缓存问题。我应该想到这一点。由于getJSON使用GET,因此您必须注意缓存。

getJSON只是ajax的包装,因此您可以使用

$.ajax({
    url:      "jsontopevents.php",
    cache:    false,
    dataType: 'json',
    success:  function(json) {
        alert(json.NameOfEvent);
    }
});

注意cache参数。有关详细信息,请参阅ajax文档。