2012-10-22 113 views
0

我想下面创建使用JS(jQuery的)JSON对象

$(document).ready(function() { 
    $.ajax({ 
     type: "GET", 
     url: "http://query.yahooapis.com/v1/public/yql?q=SELECT%20title%2C%20description%2C%20link%2C%20pubDate%0AFROM%20feed(0%2C5)%0AWHERE%20url%3D'http%3A%2F%2Ffeeds.feedburner.com%2FffAggregator'&format=json&diagnostics=true&callback=friendFeed", 
     data: { get_param: 'value' }, 
     success: function (data) { 
      var names = data 

      $('#results').html(data); 
     } 
    }); 
}); 

创建的代码使用jQuery .each()的JSON entry对象的无序列表无序列表,我想用JavaScript来实现这一( jQuery)单独使用

+0

太容易提出一个问题,你不要显示任何企图。 –

+0

我已经更新了我得到的最远的代码。对不起,以前没有包括它。这在屏幕上显示JSON字符串,我想将其制作成无序列表 –

+0

我不知道雅虎api,但我看起来像你正在接收一个嵌套在函数调用中的JSON对象。你有一个叫做friendFeed的函数吗?并做这不作为JSON返回数据? – VeXii

回答

3

在您的AJAX请求中将JSONP设置为数据类型,并将friendFeed指定为回调函数。

在成功回调函数中,您可以直接从JSON数据构建无序列表。只需遍历要使用的对象并将li元素附加到ul元素。例如:

$.ajax({ 
    type: "GET", 
    url: "http://query.yahooapis.com/v1/public/yql?q=SELECT%20title%2C%20description%2C%20link%2C%20pubDate%0AFROM%20feed(0%2C5)%0AWHERE%20url%3D'http%3A%2F%2Ffeeds.feedburner.com%2FffAggregator'&format=json&diagnostics=true&callback=friendFeed", 
    data: { get_param: 'value' }, 
    jsonpCallback: 'friendFeed', 
    dataType: "jsonp", 
    success: function (data) { 
     var obj = data.query.results.entry, // get entry object (array) from JSON data 
      ul = $("<ul>");     // create a new ul element 
     // iterate over the array and build the list 
     for (var i = 0, l = obj.length; i < l; ++i) { 
      ul.append("<li><a href='" + obj[i].link.href + "'>" + obj[i].title.content + "</a></li>"); 
     } 
     $("#results").append(ul); // add the list to the DOM 
    } 
}); 
+0

好东西谢谢@Aletheios –

+2

你不必指定一个回调,jQuery自动设置它,如果你从url中删除它http://jsfiddle.net/wAvRk/1/ –

+0

@August Lain:谢谢;请考虑接受我的答案(小复选标记)。 ;) – Aletheios