Working with JSON in PHP
- 2 minutes read
A PHP array can be easily encoded in JSON format (and vice-versa).
Let’s begin by exploring how an array can be encoded to JSON.
Despite formally being called an array, PHP arrays are really more like maps. An array might look like something like this:
$array = array(
'color' => 'red',
'shape' => 'circle'
);
// OR
$array = [
'color' => 'red',
'shape' => 'circle'
];
Similarly to JavaScript’s
JSON.stringify method, PHP’s json_encode
built-in function will convert an array to a JSON string:
$string = json_encode($array);
The output of the above snippet will be a string that looks like this: { "color" : "red", "shape" : "circle" }
.
Decoding JSON strings in PHP
You can also decode JSON strings back to either an associative array or an object:
$json = json_decode($string, true); // Return associative array
$color = $json->{'color'}; // Returns "red"
$json = json_decode($string); // Return object
$color = $json['color']; // Returns "red"
As demonstrated in the above snippet, the approach to providing keys and accessing values depends on whether an associative array or object is returned.
Conclusion
Working with JSON in PHP can be a very frustrating experience. Especially when trying to decode JSON from external sources.
But I hope this brief tutorial helped you to better understand which data formats are accepted for each operation!