phpjsonfilearrays

How to add to JSON array in .json file


How do I add to a .json file with PHP? Currently, I'm appending a .json file with PHP, but it won't add the data to an existing JSON object. It makes a new object. I need the data all stored in one object, in an external JSON file. Basically, I have a JSON object and want to add more values to it.

$jsonFile = "test.json";
$fh = fopen($jsonFile, 'w');

$json = json_encode(array("message" => $name, "latitude" => $lat, "longitude" => $lon, "it" => $it));

fwrite($fh, $json);

Solution

  • You can decode the json file to a php array, then insert new data and save it again.

    <?php
    $file = file_get_contents('data.json');
    $data = json_decode($file);
    unset($file);//prevent memory leaks for large json.
    //insert data here
    $data[] = array('data'=>'some data');
    //save the file
    file_put_contents('data.json',json_encode($data));
    unset($data);//release memory