www.webdeveloper.com
Results 1 to 7 of 7

Thread: parsing json with php

  1. #1
    Join Date
    Dec 2010
    Posts
    59

    parsing json with php

    I'm trying to parse a json feed from a yahoo pipe. here is the URL:

    http://pipes.yahoo.com/pipes/pipe.ru...7&_render=json

    I need help on getting the date, title and anything else I need off of the feed with php. How can I do this? thanks
    MY BLOG:
    HTML Code:
    <a href="http://teststuff.freehostingcloud.com">click here to read my game progress</a>

  2. #2
    Join Date
    Sep 2008
    Location
    Akron, OH
    Posts
    1,111
    Here's a basic example to get the pubDate. You basically convert the JSON to a PHP object then get the piece you want:

    Code:
    <?php
    	$json = file_get_contents('http://pipes.yahoo.com/pipes/pipe.run?_id=8d19cb9d501614c386eee1e3609e5957&_render=json');
    	$object = json_decode($json);
    	print_r($object->value->pubDate);
    ?>
    I'm always up for networking with fellow web professionals. Connect with me on LinkedIn if you like!

  3. #3
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,178
    Note that if you set the optional 2nd param to json_decode() to a true value, it will return everything in the result as arrays, which can sometimes simplify things when the JSON being parsed is a combination of objects and arrays. But that's just a style/personal preference thing, nothing about the previous reply being right/wrong, good/bad, etc. -- just letting you know your options.
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  4. #4
    Join Date
    Dec 2010
    Posts
    59
    Ok, so i was able to get most of the information i need, but there is one tricky part. It has a section where it has the hour of the post, the minutes of the post and what not. and it's coded like this.
    Code:
     [y:published] => stdClass Object
                                    (
                                        [hour] => 11
                                        [timezone] => UTC
                                        [second] => 24
                                        [month] => 10
                                        [month_name] => October
                                        [minute] => 26
                                        [utime] => 1382527584
                                        [day] => 23
                                        [day_ordinal_suffix] => rd
                                        [day_of_week] => 3
                                        [day_name] => Wednesday
                                        [year] => 2013
                                    )
    how do i reference that in php to put them in my own array?
    Last edited by NogDog; 10-23-2013 at 06:41 AM. Reason: added [code] tags around code
    MY BLOG:
    HTML Code:
    <a href="http://teststuff.freehostingcloud.com">click here to read my game progress</a>

  5. #5
    Join Date
    Aug 2004
    Location
    Ankh-Morpork
    Posts
    19,178
    You may have to do something like the following because of the colon in the name:
    PHP Code:
    $yourObject->("y:published"}->hour 
    And I'm not 100% sure that will work. This might be an argument for having json_decode() return an array, since then it would just be:
    PHP Code:
    $yourArray['y:published']['hour'
    "Please give us a simple answer, so that we don't have to think, because if we think, we might find answers that don't fit the way we want the world to be."
    ~ Terry Pratchett in Nation

    eBookworm.us

  6. #6
    Join Date
    Dec 2010
    Posts
    59
    Ok, i tried putting both of your codes in my foreach loop in php. I got nothing or both. this is what i have:

    Code:
    $json = file_get_contents('http://pipes.yahoo.com/pipes/pipe.run?_id=8154a524cb87db884728b7eca21b012f&_render=json');
    	$object = json_decode($json, true);
    	
    	foreach($json->value as $object){
    		echo $object['y:published']['hour']
    	}
    MY BLOG:
    HTML Code:
    <a href="http://teststuff.freehostingcloud.com">click here to read my game progress</a>

  7. #7
    Join Date
    Dec 2010
    Posts
    59
    Nevermind, I foudn out what was wrong with my previous code, and figured out how to do it. Thanks for your help!
    MY BLOG:
    HTML Code:
    <a href="http://teststuff.freehostingcloud.com">click here to read my game progress</a>

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles