我尝试使用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"
},
由于存在许多类似的错误,因此逐个手动删除这些字符会很痛苦。有没有更快的方法来处理这个问题?
答案 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 ) );