jQuery/CakePHP1.3 もういやになるほど Invalid JSON とか見た件

いやハマった、2日も悩んでた。


サーバ側からjson形式でDBで取得したデータを返却する処理を組んでいたが、全く上手くいかなかった。


返却するデータの形式がjson形式じゃないのか?と思ってサーバ側のデータをprint_rしてブラウザで確認しても別段おかしいところはない。全然エラーっぽそうなところは無いのに、$.ajaxでデータを取得してみると、ことごとくerrorコールバックに飛ばされ、Invalid JSON…。


散々見直したところ、原因はcakephpのfind(all)の戻りデータがなんだかおかしな動きをしている。
print_rで見たところ、要素数が4つで、添字0〜3とあるはずのテーブルに、for文(訳あってforeach文で書いてない)で3番目の配列を参照すると落ちている。おかしい、確かに添字が数値で3番目であるはずなのに…。foreach文だと上手くいく、なぜか。


そのほか、find(all)で取得したデータは同階層でないと”データが見つからない”といった趣旨のエラーが出力されたりした。


どうにか動くようにはなったが、どうも腑に落ちない。jsonPHP記述の作法でもあるのか?作り方が悪いのかな?インターネット上では、Jsonのクライアント側の実装はたくさんあるんだけど、サーバ側の実装サンプルってほんと少ないよなぁ。