0

我尝试使用 PHP 解析一个大的 JSON 文件,但它总是给我错误。
当我尝试使用http://jsonlint.com/验证 JSON 文件时,我遇到了很多错误,其中一些单词被“不需要的”空格和换行符分隔,如下所示:

{
                "id": "1",
                "qn
 ame": "detik.co.id.",
                "source": "undefined"
},  

注意“qname”这个词被分成“qn”和“ame”。在这两者之间有空格和换行符。

正确的应该是这样的:

{
                    "id": "1",
                    "qname": "detik.co.id.",
                    "source": "undefined"
 },  

因为有很多类似的错误,手动删除这些字符会很痛苦。有没有更快的方法来处理这个问题?

4

2 回答 2

0

根据数据,您可以去掉所有的空格和换行符:

tr -d ' \n' < input_json.txt > spaceless_json.txt

但是,如果您的数据带有嵌入式空格,那么这当然会中断,例如:

"var one" : 1
于 2012-07-31T02:50:58.347 回答
0

如果命令行选项不起作用,请尝试 str_replace():

$parsed = json_decode( str_replace( array( "\r\n", "\r", "\n", "\t" ), '', $nasty_string_from_file ) );
于 2012-07-31T03:04:28.423 回答