2012-10-22 115 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