PHP - 如何从 JSON 文件编辑数组元素?

PHP - How to edit Array Elements from JSON File?

我正在学习 PHP 中有关解析 JSON 的更多信息,但我在编辑某个文件时遇到了问题。

我写了一段代码,可以只编辑 JSON 文件中我想要的值,并且出于某种原因,当我尝试编辑“IdList”中的值时,我的代码替换了那个没有方括号的值,使 JSON 结构无效。

如何让我的代码正确覆盖此值,同时将其保留在方括号内?

我的JSON文件

{
"isVisible": false,
"Name": "Lorem ipslum",
"Int": 0,
"IdList": [10, 30, 70],
"UseKeys": true,
}

我的PHP代码

<?php

$commandline = ($_GET[("string")]);
$json_object = file_get_contents('file.json');

$data = json_decode($json_object, true);
$data['IdList'] = $commandline;
$json_object = json_encode($data, JSON_UNESCAPED_UNICODE);
file_put_contents('file.json', $json_object);
echo('success');
?>

例如,当我尝试将 IdList 更改为“70、80、90”时,Json 文件的保存方式如下:

"IdList":"70, 80, 90"

应该是这样保存的:

"IdList": [70, 80, 90]

当我尝试从其他值修改文本时,它工作正常。

您正在为 "IdList"

设置 string

这对你有用:

$data['IdList'] = array_map('intval', explode(',',$commandline));

您可以替换此行:

$data['IdList'] = $commandline;

与:

$data['IdList'] = json_decode('[' . $commandline . ']', true);