使用PHP将JSON附加到文件中的数组

时间:2014-07-25 16:35:53

标签: javascript php arrays json

我非常喜欢JS,所以对PHP的一些帮助将不胜感激:]

我有一些数据 - 在POST请求正文中的JSON - 以PHP文件为目标。 php文件需要将每个JSON对象添加到同一文件夹中单独的file.json文件中的现有JSON数组中。我现在有这个:

<?php

$jsonString = file_get_contents("php://input");

$file = file_get_contents("testFile.json");
$fileData = json_decode($file);
$fileData[] = $jsonString;

$dataAsJson = json_encode($fileData);

file_put_contents($file, $dataAsJson);
echo '{ "success": true }';
?>

但是从这开始,它将新的JSON添加到文件中但不是在数组中或用逗号分隔每个对象:

<?php

$jsonString = file_get_contents("php://input");

$file = "testFile.json";

file_put_contents($file, $jsonString, FILE_APPEND);
echo '{ "success": true }';
?>

2 个答案:

答案 0 :(得分:1)

解码发布的JSON:

$fileData[] = json_decode($jsonString);

答案 1 :(得分:0)

感谢这两个答案,这里是最终的代码,可以让任何人明白这个问题。

有两个问题:$ file变量必须只是文件引用而不是&#39; file_get_contents&#39;函数,这被移动以创建一个更完整的$ fileData变量 - 拉动和解码file.json。另一个修复是添加由@hindmost和@AbraCadaver -thanks给出的json_decode。

<?php

$jsonString = file_get_contents("php://input");

$file = "testFile.json";
$fileData = json_decode(file_get_contents($file));
$fileData[] = json_decode($jsonString);

$dataAsJson = json_encode($fileData);

file_put_contents($file, $dataAsJson);
echo '{ "success": true }';

?>