我想编写php将json添加到包中

我想编写php将json添加到包中,php,json,Php,Json,我想编写php将信息添加到json id包中。 我希望它在同一个地区。 对不起,我打字的英语不好。我使用翻译 我的代码:- <?php $donatename = $_POST['donatename']; $donateURL = $_POST['donateurl']; $json1_str = '{ "transaction": "'.$fti_u.'", "donatename": "'.$donatename.'", "do

我想编写php将信息添加到json id包中。 我希望它在同一个地区。 对不起,我打字的英语不好。我使用翻译

我的代码:-

<?php
$donatename = $_POST['donatename'];
$donateURL = $_POST['donateurl'];
    $json1_str = '{
        "transaction": "'.$fti_u.'",
        "donatename": "'.$donatename.'",
        "donateURL": "'.$donateURL.'",
        "releaseddate": "'.$fttime_u.'"
    }';

$json1 = json_decode($json1_str, true);
$json2['packages'][] = $json1;
$jsonData = json_encode($json2, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

file_put_contents('data.json', $jsonData, FILE_APPEND);
?>
----期望-----

错误:

第10行出现分析错误:…“”}]}{“包”:[ --------------------^应为'EOF'、'}'、'、'、']'


您希望将数据添加到现有内容中,因此只需读取现有数据文件,添加新内容并使用新版本的数据覆盖现有文件

$json1 = json_decode($json1_str, true);
// Load existing content
$json2 = json_decode(file_get_contents('data.json'), true);
$json2['packages'][] = $json1;
$jsonData = json_encode($json2, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

file_put_contents('data.json', $jsonData);  // Remove the append

每次执行脚本时,都会将单个json块附加到文件中。相反,您应该执行一次脚本,并使用foreach收集包并将其交给json对象。或者,您需要每次从文件中读取,转换为数组,追加到数组,再转换回JSON。这就是我想要的。你可能不是一个普通人在读我的信息。哈哈哈。谢谢我再问一个问题。如何从上面录制?抱歉-不确定您的意思。将json保存在顶部,而不是从底部录制更改
$json2['packages'][]=$json1
to
array\u unshift($json2['packages',$json1)
{
    "packages": [
        {
            "transaction": "",
            "donatename": "",
            "donateURL": "",
            "releaseddate": ""
        },
        {
            "transaction": "",
            "donatename": "",
            "donateURL": "",
            "releaseddate": ""
        }
,        {
            "transaction": "",
            "donatename": "",
            "donateURL": "",
            "releaseddate": ""
        }
    ]
}
$json1 = json_decode($json1_str, true);
// Load existing content
$json2 = json_decode(file_get_contents('data.json'), true);
$json2['packages'][] = $json1;
$jsonData = json_encode($json2, JSON_PRETTY_PRINT | JSON_UNESCAPED_SLASHES);

file_put_contents('data.json', $jsonData);  // Remove the append