难以通过jquery解析yahoo API json

问题描述 投票:0回答:2

我在解析以下链接时遇到问题。我希望能够使用$ .getJSON()从数组中的每个对象中提取一些对象特征。有人知道我该怎么做吗?

谢谢!

http://search.yahooapis.com/NewsSearchService/V1/newsSearch?appid=YahooDemo&query=market&results=2&language=en&output=json&callback=

这里是实际对象:

{
  "ResultSet": {
    "totalResultsAvailable": "68369",
    "totalResultsReturned": 2,
    "firstResultPosition": "1",
    "Result": [{
      "Title": "MARKET SNAPSHOT: U.S. Stocks To Begin New Week In Vulnerable Spot",
      "Summary": "MARKET SNAPSHOT: U.S. Stocks To Begin New Week In Vulnerable Spot",
      "Url": "http:\/\/www.foxbusiness.com\/story\/markets\/industries\/market-snapshot-stocks-begin-new-week-vulnerable-spot\/",
      "ClickUrl": "http:\/\/www.foxbusiness.com\/story\/markets\/industries\/market-snapshot-stocks-begin-new-week-vulnerable-spot\/",
      "NewsSource": "FOX Business",
      "NewsSourceUrl": "http:\/\/www.foxbusiness.com\/",
      "Language": "en",
      "PublishDate": "1278143248",
      "ModificationDate": "1278144826"
    }, {
      "Title": "MARKET SNAPSHOT: U.S. Stocks In The Red, Post Weekly Losses",
      "Summary": "MARKET SNAPSHOT: U.S. Stocks In The Red, Post Weekly Losses",
      "Url": "http:\/\/feeds.foxbusiness.com\/~r\/foxbusiness\/latest\/~3\/hL3f6RiYhdU\/",
      "ClickUrl": "http:\/\/feeds.foxbusiness.com\/~r\/foxbusiness\/latest\/~3\/hL3f6RiYhdU\/",
      "NewsSource": "Fox News",
      "NewsSourceUrl": "http:\/\/www.foxnews.com\/",
      "Language": "en",
      "PublishDate": "1278109361",
      "ModificationDate": "1278109412"
    }]
  }
}
jquery json api parsing yahoo
2个回答
1
投票

我不确定我是否完全理解它,但是如果您仔细阅读,您会发现它使用对象表示法(毕竟,这就是JSON的含义),因此您可以使用限定名称(data.ResultSet)访问任何属性。 .Result [0] .Summary将访问第一个结果的摘要(例如示例)。

无论如何,您要提取哪些特征?您想将它们打印到某些DOM组件,提醒它们还是将其存储在变量中?无论如何,请检查此代码:对于每个结果,它将在警报对话框中打印其标题和url((它使用jQuery的每个函数来遍历结果):

$.getJSON('http://search.yahooapis.com/NewsSearchService/V1/newsSearch?appid=YahooDemo&query=market&results=2&language=en&output=json&callback=',
function(data){
   $.each(data.ResultSet.Result, function(index, value){
     alert("Result #"+index+": "+value.Title+" url: "+value.Url);
   });
   return false;
});

我将退出回调,因为它可能是跨站点调用,并且该参数用于规避大多数主流浏览器强制实施的相同原始策略。


1
投票

以下应该起作用。您将需要从数据中提取所需的属性

$.getJSON('http://search.yahooapis.com/NewsSearchService/V1/newsSearch?appid=YahooDemo&query=market&results=2&language=en&output=json&callback=', function(data) {
  alert(data.ResultSet.totalResultsAvailable);
});

更新

输出有意义的结果,需要使用回调才能触发成功函数。

© www.soinside.com 2019 - 2024. All rights reserved.