如何将数组正确转换为json字符串? 我从亚马逊,ebay,flickr和freebase获取数据,并且返回的一些数据不能安全地转换为json。
这是使用json_encode()
https://dl.dropbox.com/u/126688107/invalid_json.txt
我已经尝试使用addslashes()
来避免双引号。但我也使用单引号获取字符串,所以我也使用str_replace("'", "\'", $string_with_single_quotes)
但我也得到了类似的东西:
"parent":null
"nodes":[]
我不知道它是否是一个有效的json。
我也得到addslashes()
已经过火了:
It is the world\\\\\\'s
我需要的是一个可以指出我使json字符串无效的工具。
我尝试了这个http://sourceforge.net/projects/jsonschemaphpv/,但它似乎没有认识到有多个项目的json。它总是说它无效,因为我拥有的字符串包含在[]
有什么想法吗?
提前致谢!
更新
对于那些问我为什么认为这是无效的json的人。
我实际上是将json字符串保存到数据库中,当我检索它并使用json_decode($str, true)
将其转换为数组时,它只返回NULL
答案 0 :(得分:2)
您不需要为json_encode()
执行任何特殊操作来输出有效的JSON。
您链接的“验证器”是不检查输入是否有效JSON;它正在检查它是否与特定的“模式”匹配(这不是JSON真正具有的概念,并且验证器的正确性未知)。
在我看来,问题可能是你将JSON复制粘贴到插入换行符的东西中 - 这使得像JSONLint这样的工具会抱怨。