質問: json_decode($json,true); json_last_error(); ``` hoge.json(UTF-8) {"data":[ {"first":"maki","family":"nishikino"}, {"first":"rin","family":"hoshizora"}, {"first":"hanayo","family":"koizumi"} ]} (追記1) jsonの内容を文字列としてPHPに直書きしたところ、問題なく動きました。 皆様の仰る通り、JSON書式の問題ではないようでした。 jsonファイル作成の過程で、文字コード等に問題があったのか確認しています。 (追記2) 試しにjsonファイルをUTF-8以外で作成してみたところ、動作しました。 JSONファイル作成に用いたエディタ、あるいは文字コード変換でなにか問題があったものと考えられます。
回答: 記憶なんですけど、mb_convert_encoding()って、UTF-8をUTF-8に変換しようとすると誤変換を起こすことがあったような... なので、 ``` $enc = mb_detect_encoding($json, 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN'); ``` で、結果がUTF-8だったらmb_convert_encoding()しないでjson_decode()かける、みたいな事をすると行けたり行けなかったりするかもしれません...。 #### 追記 あと、このへん... PHPのjson_encodeがUTF-8がエラーになってしまう時に対処方法