-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に改行を挿入しているものからJSONをコピーして貼り付けていることが問題のようです-これにより、JSONLintのようなツールが文句を言います。

于 2013-02-27T08:59:24.283 に答える