Json变得不明确,不确定为什么

时间:2012-08-07 12:25:53

标签: jquery ajax json

我有一个json feed我正在使用ajax尝试以列表格式显示数据。我之前从未使用过json feed,因此必须从这些论坛中学到很多东西。

目前数据未定义且不确定原因。现在我知道json feed是跨域的,所以需要jsonp和一个回调函数,而不是url中的一个。

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>JSONP test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
</head>

<body>
<div id="content"></div>
<script type="text/javascript"> 
function loadgatewayJSON() {

$.ajaxSetup({ 
        global  : true, 
        dataType: 'jsonp', 
        jsonp   : 'callback',
        cache   : true,
        data: {eventTypeId:1}, 
        ajaxStart: function(){
            //$('#content').hasClass('loading');
        },
        complete: function(){ 
             //$('#content').removeClass('loading');
        }
        });

    $.ajax({

        url: '(my url for feed)',
                   success: function(data, status) { 
                        $('#content').empty();  
                        var numResults = data.length;
                        alert(data);
                        for (var i=0;i < numResults;i++) {                              
                            $('#content').append("<p>"+data[0].eventCount+"</p>");

                        };

                   },
                   error:function (xhr, ajaxOptions, thrownError){ 
                    alert("An error has occured");
                    alert(xhr.status); 
                    alert(xhr.responseText); 
                } 
        });
};
loadgatewayJSON();
</script>
<div id="content"></div>
</body>
</html>

我只是想知道是否有人能够发现我在代码中所做的任何错误,原因是为什么它未定义。我真的只想要一份事件清单。我希望有人能帮到我。

更新

我现在已经开始提取,但很难在json Feed中提取数据。

我需要拉的东西是

“名称” “开始日期” “结束日期” “事件类型”

我认为是:

$('#content').empty();  
var data = name.event;

alert(data);
for (var i=0;i < numResults;i++) {                              
$('#content').append('+data[0].events+');

可悲的是,这一切都显示了+ data [0] .events + load of times

更新

感谢这个问题的修复,遗憾的是似乎没有显示任何东西,所以假设它是我正在使用的措辞。

    "status": "success",
        "eventCount": 681,
        "events": [
            {

"baseUrl":                 
"pageUrl":                                 
"name":                 
"owner":        
"startDate":                 
"startTime":                 
"endDate":                 
"endTime": 

这些是Feed ID,可以使用此代码提取信息

success: function(data, status) { 
                    $('#content').empty();  
                    var data = data.name;
                    alert(data);
                    for (var i=0;i < data;i++) {                                
                        $('#content').append(data[0].events);

                    };

2个问题中有1个问题已经解决了。今天至少不是浪费。非常感谢你的帮助:))

1 个答案:

答案 0 :(得分:0)

你所做的是错的, $('#content').append('+data[0].events+');

你应该做的 $('#content').append(data[0].events);

'+data[0].events+'被视为字符串,输出符合预期。