[Titanium] JSON.stringifyした値をPOSTしてもjson_decodeが失敗する
Titanium MobileでWordPressと連携するアプリを開発しているときの覚書。
環境: Titanium SDK 2.1.4, WordPress 3.3.2, PHP 5.3.19
<現象>
アプリ側でJSON.stringifyした値をPOSTして、PHP側でjson_decodeしても失敗する。
<原因>
JSON文字列のダブルクォーテーションがエスケープされている。
PHPの設定で「magic_quotes_gpc」はOFFになっているし、アプリ側でPOSTしたDATAはエスケープされていない。
Networkを監視して、POSTする値を確認する方法は前の記事を参考に。
確認用のPHPで試してみると
wp-load.phpに対してPOSTした値のみエスケープされている様子
しょうがないので、json_decodeする前にstripslashesすれば問題なさそう。
WordPressの場合、「stripslashes_deep」という関数もある。
< Related Posts >