JSON文件包含不需要的空格和换行符

时间:2012-07-31 02:48:28

标签: php json

我尝试使用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"
 },  

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

2 个答案:

答案 0 :(得分:0)

根据数据的不同,您可以摆脱所有空格和换行符:

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

但是,如果您的数据包含嵌入式空格,那么当然会破坏:

"var one" : 1

答案 1 :(得分:0)

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

$parsed = json_decode( str_replace( array( "\r\n", "\r", "\n", "\t" ), '', $nasty_string_from_file ) );