我有一个格式与JSON格式相似的文本文件,但是打印/查看友好格式,我想将该字符串转换为有效的JSON。 基本上,我想使用PHP5读取文件,并调用json_decode来反序列化字符串。 但是,json_decode无法解析“打印友好”的json字符串。将JSON打印格式转换为有效的JSON
我收到错误4无效或格式错误的JSON。
它看起来像其他人也有类似的问题,因为我:PHP json_decode() returns NULL with valid JSON?
我使用记事本++写的JSON文件。
所以,我怎么能转换
FROM:
{
"data": [
{
"thumbImg": "thumbImg",
"street": "street",
"city": "Fort Worth",
"state": "Texas",
"zip": "76192-0001",
"url": "url"
}
]
}
TO:
{"data":[{"thumbImg": "thumbImg", "street": "street", "city": "Fort Worth", "state": "Texas", "zip": "76192-0001", "url": "url"}]
我甚至试着做以下几点:
<?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);
?>
我做了一个var_dump的结果json字符串和http://jsonlint.com/标记为有效的json;然而,由于某种原因,json_decode无法反序列化json字符串。
谢谢!
解决方案 我将文本文件的编码设置为无BOM的UTF-8,现在它工作正常。谢谢你们!
的数据分析,没有任何问题,我。 – Quentin 2010-09-26 07:20:24
当我从文本文件中读取时(无需重新格式化文本),它起作用。听起来你已经开始使用“我在阅读文件时遇到问题”,但是最终你问“我该如何重新格式化这个文件?”,这是实际问题的几个步骤,导致了一个问题:对任何人都没有帮助。 – Quentin 2010-09-26 07:25:34
'json_decode'完美适合我:http://codepad.org/wcNFa2F5你应该尝试使用'file_get_contents'来读取文件:http://php.net/manual/en/function.file-get-contents.php – 2010-09-26 07:26:06