Проблемы с разбором API Yahoo JSON с JQuery - PullRequest
0 голосов
/ 04 июля 2010

У меня проблемы с анализом следующей ссылки. Я хотел бы иметь возможность извлечь несколько характеристик объекта из каждого объекта в массиве, используя $ .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"}]}}

Ответы [ 2 ]

1 голос
/ 04 июля 2010

Я не уверен, что получу его полностью, но если вы внимательно прочитаете, вы увидите, что он находится в нотации объектов (в конце концов, это то, что означает JSON), так что вы можете получить доступ к любому свойству с определенным именем (данными).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 голос
/ 04 июля 2010

Следующее должно работать. Вам нужно будет извлечь нужные данные из данных

$.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);
});

UPDATE

Вывод значимого результата, для срабатывания функции успеха требуется обратный вызов.

...