JSON形式のデータを、PHPでオブジェクトもしくは配列にする場合、json_decode関数を利用するが、データの処理がうまくいかない場合の調査をするには、json_last_errorという関数を利用するとよいみたい。
json_last_error();
直近の JSON エンコード/デコード処理中に発生したエラー (もし存在すれば) を返します。
数字が返ります(0、1から5)。
JSON_ERROR_NONE:エラーは発生しませんでした
JSON_ERROR_DEPTH:スタックの深さの最大値を超えました
JSON_ERROR_STATE_MISMATCH:JSON の形式が無効、あるいは壊れています
JSON_ERROR_CTRL_CHAR:制御文字エラー。おそらくエンコーディングが違います
JSON_ERROR_SYNTAX:構文エラー
JSON_ERROR_UTF8:正しくエンコードされていないなど、不正な形式の UTF-8 文字
上から0~5と思われます。