我需要帮助将数组添加到已创建的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文件中,那就太棒了!
谢谢!
答案 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));