当文件有两个不同的 JSON 元素时,json_decode失败并显示错误代码 4


json_decode fails with error code 4 when file has two distinct json elements

{
  "file": 1, 
  "format": 1
}
{
  "info_sent": 0.0, 
  "lsd": true, 
  "send_info": false
}

当文件按这样排列时,json_decode返回语法错误。 顺便说一下,这是Deluge的配置文件。

JSON 需要在两个元素之间使用逗号,然后应该将其包装为数组。

喜欢这个:

[{
  "file": 1, 
  "format": 1
},
{
  "info_sent": 0.0, 
  "lsd": true, 
  "send_info": false
}]

若要使用原始格式,请创建一个循环,在该循环中分别解码每个元素并将生成的对象推送到数组中。

假设您的文件每个 JSON 元素有一行,您的代码可能如下所示:

$result = [];
foreach(file('myfile.txt') as $line) {
    $result[] = json_decode($line);
}

如果您的文件排列方式不同(一个 JSON 占用多行),则必须更改上述代码。一切都取决于文件格式...