views:

30

answers:

3

I'm having trouble parsing the following link. I'd like to be able to extract a few of the object characteristics from each object in the array using $.getJSON(). Does anyone have a clue how I can do this?

Thanks!

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

Here is the actual object:

{"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"}]}}

+1  A: 

The following should work. You will need to extract the properties you want from data

$.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

Outputs a meaningful result, callback is required for success function to fire.

Jason McCreary
Great. I appreciate the post. However, is there a way to get to each of the "Titles" within the Result array?
cfarm54
Looks like your second part was answered by **lfborjas**
Jason McCreary
+1  A: 

Hi there!

I'm not sure I get it completely, but if you read closely, you'll see it's on object notation (that's what JSON means, after all), so you can access any property with a qualified name (data.ResultSet.Result[0].Summary would access the summary of the first result, par example).

Anyway, which characteristics would you like to extract? Would you like to print 'em to some DOM component, alert them or store them in a variable? Whatever the case, check this code out: for each result, it will print it's title and url in an alert dialog, (it uses jQuery's each function to iterate over the results):

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

I'd leave the callback because it could be a cross site call, and that parameter is used to circumvent the same origin policy enforced by most major browsers.

lfborjas
A: 

Good post thanks much for the help. Both of you. I'm new with JSON, is there a place where I can learn how JSON is constructed?

cfarm54