我非常喜欢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 }';
?>
答案 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 }';
?>