我在解析以下链接时遇到问题。我希望能够使用$ .getJSON()从数组中的每个对象中提取一些对象特征。有人知道我该怎么做吗?
谢谢!
这里是实际对象:
{
"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"
}]
}
}
我不确定我是否完全理解它,但是如果您仔细阅读,您会发现它使用对象表示法(毕竟,这就是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;
});
我将退出回调,因为它可能是跨站点调用,并且该参数用于规避大多数主流浏览器强制实施的相同原始策略。
以下应该起作用。您将需要从数据中提取所需的属性
$.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);
});
输出有意义的结果,需要使用回调才能触发成功函数。