PHP read and write JSON from file


I have the following JSON in a file list.txt:


How do I add "bross":{"first":"Bob","last":"Ross"} to my file using PHP?

Here's what I have so far:


$user = "bross";
$first = "Bob";
$last = "Ross";

$file = "list.txt";

$json = json_decode(file_get_contents($file));

$json[$user] = array("first" => $first, "last" => $last);

file_put_contents($file, json_encode($json));


Which gives me a Fatal error: Cannot use object of type stdClass as array on this line:

$json[$user] = array("first" => $first, "last" => $last);

I'm using PHP5.2. Any thoughts? Thanks!

This question is tagged with php json

~ Asked on 2012-01-13 23:55:48

The Best Answer is


The clue is in the error message - if you look at the documentation for json_decode note that it can take a second param, which controls whether it returns an array or an object - it defaults to object.

So change your call to

$json = json_decode(file_get_contents($file), true);

And it'll return an associative array and your code should work fine.

~ Answered on 2012-01-13 23:57:40


The sample for reading and writing JSON in PHP:

$json = json_decode(file_get_contents($file),TRUE);

$json[$user] = array("first" => $first, "last" => $last);

file_put_contents($file, json_encode($json));

~ Answered on 2014-03-07 11:34:41

Most Viewed Questions: