-3

如何正确地将数组转换为 json 字符串?我正在从 amazon、ebay、flickr 和 freebase 获取数据,并且返回的一些数据不能安全地转换为 json。

这是我目前使用后得到的 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

4

1 回答 1

2

您不需要为json_encode()输出有效的 JSON 执行任何特殊操作。

您链接到的“验证器”没有检查输入是否是有效的 JSON;它正在检查它是否匹配特定的“模式”(这不是 JSON 真正有的概念,验证器的正确性是未知的)。

在我看来,这个问题可能是您将 JSON 从插入换行符的东西中复制粘贴出来 - 这使得 JSONLint 等工具抱怨。

于 2013-02-27T08:59:24.283 回答