1

如何使用 PHP 添加到 .json 文件?目前,我正在使用 PHP 附加一个 .json 文件,但它不会将数据添加到现有的 JSON 对象。它创建了一个新对象。我需要将数据全部存储在一个对象中,在一个外部 JSON 文件中。基本上,我有一个 JSON 对象,并想向它添加更多值。

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

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

fwrite($fh, $json);
4

2 回答 2

14

您可以将 json 文件解码为 php 数组,然后插入新数据并再次保存。

<?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
于 2013-03-01T02:45:01.067 回答
2

上面的建议是艰难的。我正在考虑应该有一种更简单的方法,将数组逐字附加到 json 文件中。

这是算法:

$handle=fopen($jsonFile);
fseek($handle,-1,SEEK_END);
fwrite($handle,$arrayToAdd);
fclose($handle);

但我不确定这样做是否比将整个 json 文件读入内存、添加数组然后存储它更有效。

于 2013-06-09T08:21:57.917 回答