asp_to_php Posted April 9, 2009 Share Posted April 9, 2009 Hi everyone, I am an ASP guy who is trying to make the change over to PHP. I am playing around with the Crunchbase API for my first PHP attempt, utilizing JSON and outputting values from a JSON result set. I am able to return top level array items, but I am not sure how to go about returning nested array results. Below is the code I am using, and the JSON text I am using...let me know if anyone has any ideas, or if there is an easier way than how I am approaching it. If you look at the JSON data, I am trying to figure out how to print out Greylock, Meritech, and Founders Fund (the "financial_org" elements). Thanks in advance for any help!!! <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>test page</title> </head> <body> <?php $jsonText = @file_get_contents($Url); $jsonObject = json_decode($jsonText); $companyName = $jsonObject->{"name"}; $companyURL = $jsonObject->{"homepage_url"}; $fundingObject = $jsonObject->{"funding_rounds"}; $fundingRound = $fundingObject[2]->{"round_code"}; $fundingAmount = $fundingObject[2]->{"raised_amount"}; $fundingYear = $fundingObject[2]->{"funded_year"}; $fundingMonth = $fundingObject[2]->{"funded_month"}; $fundingDay = $fundingObject[2]->{"funded_day"}; print "name = $companyName<br>"; print "url = $companyURL<br>"; print "funding round = $fundingRound<br>"; print "funding Amount = $fundingAmount<br>"; print "funding date = $fundingMonth/$fundingDay/$fundingYear<br>"; ?> </body> </html> JSON DATA {"name": "Facebook", "permalink": "facebook", "crunchbase_url": "http://www.crunchbase.com/company/facebook", "homepage_url": "http://facebook.com", "blog_url": "http://blog.facebook.com", "blog_feed_url": "http://blog.facebook.com/atom.php", "category_code": "network_hosting", "number_of_employees": 700, "founded_year": 2004, "founded_month": 2, "founded_day": 1, "deadpooled_year": null, "deadpooled_month": null, "deadpooled_day": null, "deadpooled_url": "", "tag_list": "facebook, college, students, profiles, network, online-communities, social-networking", "alias_list": "", "email_address": "", "phone_number": "", "description": "Social network", "created_at": "Fri May 25 21:22:15 UTC 2007", "updated_at": "Wed Apr 01 20:18:33 UTC 2009", "funding_rounds": [{"round_code": "angel", "source_url": "", "source_description": "", "raised_amount": 500000.0, "raised_currency_code": "USD", "funded_year": 2004, "funded_month": 9, "funded_day": 1, "investments": [{"company": null, "financial_org": null, "person": {"first_name": "Peter", "last_name": "Thiel", "permalink": "peter-thiel"}}]}, {"round_code": "a", "source_url": "http://www.techcrunch.com/2007/11/02/jim-breyer-extra-500-million-round-for-facebook-a-total-fiction/", "source_description": "Jim Breyer: Extra $500 Million Round For Facebook A \u201cTotal Fiction\u201d", "raised_amount": 12700000.0, "raised_currency_code": "USD", "funded_year": 2005, "funded_month": 5, "funded_day": 1, "investments": [{"company": null, "financial_org": {"name": "Accel Partners", "permalink": "accel-partners"}, "person": null}]}, {"round_code": "b", "source_url": "http://www.facebook.com/press/info.php?factsheet", "source_description": "Facebook Funding", "raised_amount": 27500000.0, "raised_currency_code": "USD", "funded_year": 2006, "funded_month": 4, "funded_day": 1, "investments": [{"company": null, "financial_org": {"name": "Greylock", "permalink": "greylock"}, "person": null}, {"company": null, "financial_org": {"name": "Meritech Capital Partners", "permalink": "meritech-capital-partners"}, "person": null}, {"company": null, "financial_org": {"name": "The Founders Fund", "permalink": "founders-fund"}, "person": null}]}, {"round_code": "c", "source_url": "http://www.techcrunch.com/2007/10/24/liveblogging-the-facebook-press-conference/#more-10260", "source_description": "Liveblogging Press Conference", "raised_amount": 240000000.0, "raised_currency_code": "USD", "funded_year": 2007, "funded_month": 10, "funded_day": 1, "investments": [{"company": {"name": "Microsoft", "permalink": "microsoft"}, "financial_org": null, "person": null}]}, {"round_code": "c", "source_url": "http://venturebeat.com/2007/11/30/facebook-gets-60m-from-hong-kong-billionaire-li-ka-shing/", "source_description": "Facebook gets $60M from Hong Kong billionaire Li Ka-shing", "raised_amount": 60000000.0, "raised_currency_code": "USD", "funded_year": 2007, "funded_month": 11, "funded_day": 30, "investments": [{"company": null, "financial_org": null, "person": {"first_name": "Li", "last_name": "Ka-shing", "permalink": "li-ka-shing"}}]}, {"round_code": "c", "source_url": "http://www.techcrunch.com/2008/01/15/breaking-samwer-brothers-invest-in-facebook/", "source_description": "", "raised_amount": 15000000.0, "raised_currency_code": "USD", "funded_year": 2008, "funded_month": 1, "funded_day": 15, "investments": [{"company": null, "financial_org": {"name": "European Founders Fund", "permalink": "european-founders-fund"}, "person": null}]}, {"round_code": "debt_round", "source_url": "http://www.businessweek.com/technology/content/may2008/tc2008059_855064.htm", "source_description": "", "raised_amount": 100000000.0, "raised_currency_code": "USD", "funded_year": 2008, "funded_month": 5, "funded_day": null, "investments": [{"company": null, "financial_org": {"name": "TriplePoint Capital", "permalink": "triplepoint-capital"}, "person": null}]}, {"round_code": "c", "source_url": "http://www.paidcontent.org/entry/419-facebook-investor-li-ka-shing-increasing-stake-in-facebook/", "source_description": "Updated: Facebook Investor Li Ka-Shing Upping Stake To $120 Million: Report", "raised_amount": 60000000.0, "raised_currency_code": "USD", "funded_year": 2008, "funded_month": 3, "funded_day": 27, "investments": [{"company": null, "financial_org": null, "person": {"first_name": "Li", "last_name": "Ka-shing", "permalink": "li-ka-shing"}}]}], "screenshots": [], "external_links": [{"external_url": "http://latimesblogs.latimes.com/technology/2008/09/facebook-hire-1.html", "title": "Facebook hires general counsel as it continues to grow"}]} (changed to tags) Link to comment https://forums.phpfreaks.com/topic/153402-returning-results-from-nested-json-arrays-using-php/ Share on other sites More sharing options...
MadTechie Posted April 9, 2009 Share Posted April 9, 2009 try this $financial_org = $fundingObject[3]->{"round_code"}->{"investments"}->{"financial_org"}; foreach($financial_org as $FO) { $name = $FO->{"name"}; $permalink = $FO->{"permalink"}; echo "$name -> $permalink<br>"; } Link to comment https://forums.phpfreaks.com/topic/153402-returning-results-from-nested-json-arrays-using-php/#findComment-805956 Share on other sites More sharing options...
asp_to_php Posted April 10, 2009 Author Share Posted April 10, 2009 try this $financial_org = $fundingObject[3]->{"round_code"}->{"investments"}->{"financial_org"}; foreach($financial_org as $FO) { $name = $FO->{"name"}; $permalink = $FO->{"permalink"}; echo "$name -> $permalink<br>"; } Thanks for the response! I am using EasyPHP, and the addition of this line results in an error - output from browser below: Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\home\test\cbtest.php on line 22 Notice: Trying to get property of non-object in C:\Program Files\EasyPHP 3.0\home\test\cbtest.php on line 22 name = Facebook url = http://facebook.com funding round = b funding Amount = 27500000 funding date = 4/1/2006 Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP 3.0\home\test\cbtest.php on line 30 Current code, with additions. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>test page</title> </head> <body> <?php $jsonText = @file_get_contents($url); $jsonObject = json_decode($jsonText); $companyName = $jsonObject->{"name"}; $companyURL = $jsonObject->{"homepage_url"}; $fundingObject = $jsonObject->{"funding_rounds"}; $fundingRound = $fundingObject[2]->{"round_code"}; $fundingAmount = $fundingObject[2]->{"raised_amount"}; $fundingYear = $fundingObject[2]->{"funded_year"}; $fundingMonth = $fundingObject[2]->{"funded_month"}; $fundingDay = $fundingObject[2]->{"funded_day"}; $financial_org = $fundingObject[2]->{"round_code"}->{"investments"}->{"financial_org"}; print "name = $companyName<br>"; print "url = $companyURL<br>"; print "funding round = $fundingRound<br>"; print "funding Amount = $fundingAmount<br>"; print "funding date = $fundingMonth/$fundingDay/$fundingYear<br>"; foreach($financial_org as $FO) { $name = $FO->{"name"}; $permalink = $FO->{"permalink"}; echo "$name -> $permalink<br>"; } ?> </body> </html> Link to comment https://forums.phpfreaks.com/topic/153402-returning-results-from-nested-json-arrays-using-php/#findComment-806009 Share on other sites More sharing options...
asp_to_php Posted April 10, 2009 Author Share Posted April 10, 2009 Bump...anyone? Link to comment https://forums.phpfreaks.com/topic/153402-returning-results-from-nested-json-arrays-using-php/#findComment-806920 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.