I tried to parse a JSON file using PHP. But I am stuck now.
This is the content of my JSON file:
{
"John": {
"status":"Wait"
},
"Jennifer": {
"status":"Active"
},
"James": {
"status":"Active",
"age":56,
"count":10,
"progress":0.0029857,
"bad":0
}
}
And this is what I have tried so far:
<?php
$string = file_get_contents("/home/michael/test.json");
$json_a = json_decode($string, true);
echo $json_a['John'][status];
echo $json_a['Jennifer'][status];
But because I don't know the names (like 'John'
, 'Jennifer'
) and all available keys and values (like 'age'
, 'count'
) beforehand, I think I need to create some foreach loop.
I would appreciate an example for this.
I can't believe so many people are posting answers without reading the JSON properly.
If you foreach iterate
$json_a
alone, you have an object of objects. Even if you pass intrue
as the second parameter, you have a two-dimensional array. If you're looping through the first dimension you can't just echo the second dimension like that. So this is wrong:To echo the statuses of each person, try this:
Loop through the JSON with a
foreach
loop as key-value pairs. Do type-checking to determine if more looping needs to be done.To iterate over a multidimensional array, you can use RecursiveArrayIterator
Output:
run on codepad