(PHP 5 >= 5.2.0, PECL json >= 1.2.0)
json_decode — Decodes a JSON string
Takes a JSON encoded string and converts it into a PHP variable.
The json string being decoded.
When TRUE, returned objects will be converted into associative arrays.
Returns an object or if the optional assoc parameter is TRUE, an associative array is instead returned.
Example #1 json_decode() examples
<?php
$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
var_dump(json_decode($json));
var_dump(json_decode($json, true));
?>
The above example will output:
object(stdClass)#1 (5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) } array(5) { ["a"] => int(1) ["b"] => int(2) ["c"] => int(3) ["d"] => int(4) ["e"] => int(5) }
Example #2 Another example
<?php
$json = '{"foo-bar": 12345}';
$obj = json_decode($json);
print $obj->{'foo-bar'}; // 12345
?>
Example #3 common mistakes using json_decode()
<?php
// the following strings are valid JavaScript but not valid JSON
// the name and value must be enclosed in double quotes
// single quotes are not valid
$bad_json = "{ 'bar': 'baz' }";
json_decode($bad_json); // null
// the name must be enclosed in double quotes
$bad_json = '{ bar: "baz" }';
json_decode($bad_json); // null
// trailing commas are not allowed
$bad_json = '{ bar: "baz", }';
json_decode($bad_json); // null
?>
Note: The JSON spec is not JavaScript, but a subset of JavaScript.
This function will return FALSE if the JSON encoded data is deeper than 127 elements.
Version | Description |
---|---|
5.2.3 | The nesting limit was increased from 20 to 128 |