json_decode to array
This is a late contribution, but there is a valid case for casting json_decode
with (array)
.
Consider the following:
$jsondata = '';
$arr = json_decode($jsondata, true);
foreach ($arr as $k=>$v){
echo $v; // etc.
}
If $jsondata
is ever returned as an empty string (as in my experience it often is), json_decode
will return NULL
, resulting in the error Warning: Invalid argument supplied for foreach() on line 3. You could add a line of if/then code or a ternary operator, but IMO it's cleaner to simply change line 2 to ...
$arr = (array) json_decode($jsondata,true);
... unless you are json_decode
ing millions of large arrays at once, in which case as @TCB13 points out, performance could be negatively effected.
Just in case you are working on php less then 5.2 you can use this resourse.
http://techblog.willshouse.com/2009/06/12/using-json_encode-and-json_decode-in-php4/
http://mike.teczno.com/JSON/JSON.phps
try this
$json_string = 'http://www.domain.com/jsondata.json';
$jsondata = file_get_contents($json_string);
$obj = json_decode($jsondata,true);
echo "<pre>";
print_r($obj);
As per the documentation, you need to specify true
as the second argument if you want an associative array instead of an object from json_decode
. This would be the code:
$result = json_decode($jsondata, true);
If you want integer
keys instead of whatever the property names are:
$result = array_values(json_decode($jsondata, true));
However, with your current decode you just access it as an object:
print_r($obj->Result);