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);
我正在学习 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);