如何将数组添加到已创建的JSON文件中?

时间:2015-10-17 22:43:25

标签: php arrays json

我需要帮助将数组添加到已创建的JSON文件中。我正在使用PHP来尝试这样做。

现在这是我的代码:

$profile = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=0CDB935B8BFF1E1664C90DB875E88727&steamids={$steam64}");
$buffer = fopen("cache/players/{$steam64}.json", "w+");
fwrite($buffer, $profile);
fclose($buffer);
        }

它从外部JSON文件获取数据,然后创建并写入新文件。之后,代码如下所示:

{
"response": {
    "players": [
        {
            "steamid": "76561198064105349",
        }
    ]

}
}

现在我想添加一个数组,我试过这个:

$data[] = array('tradelink'=>'', 'paypalemail'=>'');

file_put_contents($buffer, json_encode($data));

但它没有做任何事。我在添加并写入新的JSON文件之后立即将此代码放入其中。

如果有人可以帮助我将数组添加到JSON文件中,那就太棒了!

谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用json_decode加载文件,然后附加数组,然后再次使用json_encode。

 $data = json_decode(file_get_contents($buffer));
 $data->tradelink = "";
 $data->paypalemail = "";
 file_put_contents($buffer, json_encode($data));

答案 1 :(得分:0)

您没有将缓冲区对象与要放入的阵列相关联 这段代码可以使用。

$profile = file_get_contents("http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key=0CDB935B8BFF1E1664C90DB875E88727&steamids={$steam64}"); 
$buffer = json_decode(file_get_contents($profile));
$buffer->data = array('tradelink'=>'', 'paypalemail'=>'');
file_put_contents(json_encode($buffer));