2011年2月19日土曜日

JavaScriptオブジェクト≠JSON

phpのjson_decode関数でJSONデータを配列に変換しようとしたがうまくいかず、nullが返されてしまうということがありました。

json_last_errorというので調べてみたところ、「JSON の形式が無効、あるいは壊れています」と言われます。

デコードしようとしたJSONデータはこんな感じです。

{hoge:123, uho:"iiotoko"}

もしかしたら、、と思ってキーの文字列をダブルクオートで囲んだら、ちゃんとデコードされることがわかりました。

実はjson_decodeのマニュアルにこの事に関する記述があって、「json_decode()でのありがちな間違い」として具体例が出ています。こんな感じです。

○ $bad_json = '{ "bar": "baz" }';
× $bad_json = "{ 'bar': 'baz' }";
× $bad_json = '{ bar: "baz" }';
× $bad_json = '{ bar: "baz", }';


そのくらい大目に見てくれよ、、、という感じもしますけど、とにかくこの形式じゃないとダメということです。

0 件のコメント:

コメントを投稿