Solved

parsing JSON in php

Posted on 2010-09-17
3
398 Views
Last Modified: 2013-11-08
So i am trying to get the script below to work, i want to echo out all the id's so something like

st jo

but i cannot get it to work, i get an error, my foreach loop has something wrong in it
<?php

  

  $orig = '[{"id": "st","name": "steve"},{"id": "jo","name": "joey"}]';



$json = json_decode($orig);



echo $json[0]->id;



foreach($json->id as $val)

{

    echo($val);

}



//var_dump($json);

  

  

?>

Open in new window

0
Comment
Question by:Brant Snow
3 Comments
 
LVL 4

Author Comment

by:Brant Snow
Comment Utility
actually ideally would be a way to echo out all the results of the object like

foreach($json as $val)
{
echo $val->id;
echo $val->name;

}

so i would get something like

st steve jo joey
0
 
LVL 42

Assisted Solution

by:Chris Stanyon
Chris Stanyon earned 150 total points
Comment Utility
Here you go



$orig = '[{"id": "st","name": "steve"},{"id": "jo","name": "joey"}]';

$json = json_decode($orig);



foreach($json as $val)

{

	echo $val->id . " - " . $val->name;

}

Open in new window

0
 
LVL 108

Accepted Solution

by:
Ray Paseur earned 350 total points
Comment Utility
The code snippet outputs this, thus proving that ChrisStanyon's solution works.  You can also get json_decode() to give you an array (second part of the example).

If you use var_dump() to print out objects and arrays, you will find that it is very helpful!

Best, ~Ray
---
array(2) {
  [0]=>
  object(stdClass)#1 (2) {
    ["id"]=>
    string(2) "st"
    ["name"]=>
    string(5) "steve"
  }
  [1]=>
  object(stdClass)#2 (2) {
    ["id"]=>
    string(2) "jo"
    ["name"]=>
    string(4) "joey"
  }
}

st == steve
jo == joey
array(2) {
  [0]=>
  array(2) {
    ["id"]=>
    string(2) "st"
    ["name"]=>
    string(5) "steve"
  }
  [1]=>
  array(2) {
    ["id"]=>
    string(2) "jo"
    ["name"]=>
    string(4) "joey"
  }
}

st == steve
jo == joey

<?php // RAY_temp_thawts.php

error_reporting(E_ALL);

echo "<pre>" . PHP_EOL;







// TEST DATA FROM THE POST AT EE

$json = '[{"id": "st","name": "steve"},{"id": "jo","name": "joey"}]';







// TRY TO DECODE IT.  MAN PAGE: http://us2.php.net/manual/en/function.json-decode.php

$obj = json_decode($json);



// USE DATA VISUALIZATION TO SEE WHAT WE GOT

var_dump($obj);



// USE AN ITERATOR TO PROCESS THE OBJECT

foreach($obj as $val)

{

    echo PHP_EOL . $val->id . " == " . $val->name;

}

echo PHP_EOL;





// ANOTHER WAY - USING AN ARRAY

$arr = json_decode($json, TRUE);



// USE DATA VISUALIZATION TO SEE WHAT WE GOT

var_dump($arr);



// USE AN ITERATOR TO PROCESS THE ARRAY

foreach($arr as $thing)

{

    echo PHP_EOL . $thing['id'] . " == " . $thing['name'];

}

echo PHP_EOL;

Open in new window

0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

Suggested Solutions

This article will give core knowledge of JavaScript and will head in to your first JavaScript program. I am Durvesh Naik and I am here to deal with this series of JavaScript. I will teach you JavaScript in part wise , as its quite boring to read big…
This article discusses the difference between strict equality operator and equality operator in JavaScript. The Need: Because JavaScript performs an implicit type conversion when performing comparisons, we have to take this into account when wri…
The viewer will learn how to look for a specific file type in a local or remote server directory using PHP.
The viewer will learn the basics of jQuery, including how to invoke it on a web page. Reference your jQuery libraries: (CODE) Include your new external js/jQuery file: (CODE) Write your first lines of code to setup your site for jQuery.: (CODE)

744 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now