我在使用PHP从JSON文件中删除对象时遇到了问题。
下面的代码应该获取当前用户ID,检查JSON文件中是否已存在该用户ID,如果确实存在,则在写入新记录之前删除旧记录。如果用户ID是唯一的,则数据应该作为新对象附加到文件(此部分有效)。
这是我的PHP:
//new user id
$user_id = $uvon;
//problem here
$fileContent = file_get_contents($filetxt_1);
$jsonDecode = json_decode($fileContent, true);
foreach($jsonDecode->$user_id as $id)
if (id == "$user_id")
{
unset($user_id);
}
//
//write new object
$myObj=new stdClass();
$myObj->$user_id = new stdClass();
$myObj->$user_id->wallet_address = $walletaddress;
$myObj->$user_id->time_stamp = time();
$myJSON = json_encode($myObj, JSON_UNESCAPEDUNICODE | JSON_UNESCAPED_SLASHES | JSON_NEMERIC_CHECK | JSON_PRETTY_PRINT);
file_put_contents($filetxt_1, $myJSON, FILE_APPEND);
这是我的JSON输出。
我在用户ID对象中嵌套了与用户ID相关的信息,因为我认为这样可以更容易地删除与ID相关的记录(搜索ID和删除父对象意味着任何子元素也会被销毁? )。
用户ID只能有一组数据,但正如您所看到的,数据只是随意附加。
{
"77.104.149.212": {
"wallet_address": "0x5895311d3D45FD29b8254b27Da9837478b560290",
"time_stamp": 1521975950
}
}{
"77.104.149.212": {
"wallet_address": "0x5895311d3D45FD29b8254b27Da9837478b560290",
"time_stamp": 1521976301
}
}
非常感谢任何帮助。希望我能很好地解释自己。
提前致谢。