将打印格式的JSON转换为有效的JSON

Abe*_*Abe 1 php json file input

我有一个格式化像JSON的文本文件,但在打印/查看友好的格式,我想给字符串转换为有效的JSON.基本上,我想用读取文件PHP5并调用json_decode反序列化的字符串.但是,json_decode无法解析"打印友好"的JSON字符串.

我收到错误4 JSON无效或格式错误.

它看起来像其他人也有类似的问题,因为我:PHP json_decode()返回NULL与有效的JSON?

我使用记事本++写的JSON文件.

那么,我该怎么转换呢

从:

{
    "data": [
        {
            "thumbImg": "thumbImg",
            "street": "street",
            "city": "Fort Worth",
            "state": "Texas",
            "zip": "76192-0001",
            "url": "url"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

至:

{"data":[{"thumbImg": "thumbImg", "street": "street", "city": "Fort Worth", "state": "Texas", "zip": "76192-0001", "url": "url"}]
Run Code Online (Sandbox Code Playgroud)

我甚至试过做以下事情:

<?php
$filename = "links.json";
$file = fopen($filename, "r");

$lines = file($filename);

$data = "";
;
foreach ($lines as $line_num => $line) {
    $formatted = trim($line);
    $formatted = str_replace("\r", "", $formatted);
    $formatted = str_replace("\n", "", $formatted);
    $data .= $formatted;        
}

$json = json_decode($data, true);
?>
Run Code Online (Sandbox Code Playgroud)

我做了一个生成的json字符串的var_dump,并且http://jsonlint.com/将它标记为有效的json; 但是,由于某种原因,json_decode无法反序列化json字符串.

谢谢!

解决方案 我将文本文件的编码设置为UTF-8而没有BOM,现在工作正常.谢谢你们!

Pet*_*tai 5

<?php
$filename = "links.json";
$file = file_get_contents($filename);    

$json = json_decode($file, true);
?>
Run Code Online (Sandbox Code Playgroud)


参考文献:
- -file_get_contents()
json_decode()