当文件有两个不同的json元素时,json_decode失败,错误代码为4

时间:2016-03-05 13:44:43

标签: php json

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

当文件排列如下时,json_decode会返回语法错误。顺便说一句,这是泛滥的配置文件。

1 个答案:

答案 0 :(得分:0)

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占用多行),则您必须更改上述代码。一切都取决于文件的格式......