我有一个关于 PHP 与 JSON 结合使用的问题。
我使用数组来存储 .json 文件内部。包含数据的数组来自我的index.php,并由用户填充,到目前为止一切顺利。所有内容都保存在 .json 中,当我有超过 1 个用户在其中存储内容时(意味着 .json 文件中有 2 个数组),它不会返回数据,而是返回 NULL。我是否遗漏了有关保存或读取 JSON 文件的内容?我发现我的 JSON 无效,它在验证器内向我显示“多个根 JSON 元素”。
这是我编写和读取 .json 的代码:
public function JSONwrite($lists) { $listFill = json_encode($lists)."\n"; file_put_contents("/var/www/html/3sprint/test.json",$listFill,FILE_APPEND); } public function JSONread() { $string = file_get_contents("/var/www/html/3sprint/test.json"); $stringContent = json_decode($string, true); var_dump($stringContent); }
我的 JSON 文件看起来像这样(填充了 2 个数组):
[{"count":"3","name":"testnameone"},{"count":"5","name":"testnametwo"},{"count":"6","name":"testnamethree"},{"info":106}] [{"count":"3","name":"testnamefour"},{"count":"5","name":"testnamefive"},{"count":"6","name":"testnamesix"},{"info":521}]
这是我填充数组的地方,然后将其传递给 JSONwrite 方法(这是在 foreach 循环内):
$lists[]= [ "count"=>$count, "name"=>$name ]; } } $lists[]= [ "info" => $number ];
有没有一种方法可以像这样验证它,这样解码就不会返回 null?
P粉7242568602024-02-18 00:20:20
一个数组下的另一个数组是无效的 JSON。您应该使用一个根数组并将您的用户保留在其中(不确定数组中的内容是否有意义,但您明白了):
[ [{"count":"3","name":"testnameone"},{"count":"5","name":"testnametwo"},{"count":"6","name":"testnamethree"},{"info":106}] [{"count":"3","name":"testnamefour"},{"count":"5","name":"testnamefive"},{"count":"6","name":"testnamesix"},{"info":521}] ]
换句话说,应该如下所示:
json_decode()
对其进行解码json_encode()
将其编码回来