PHPでJSONファイルの読み込み・書き込みをする

PHPでJSONファイルの読み込みをしてデコードする方法と、JSONファイルに書き込みをする方法について説明します。

JSONとは、JavaScript Object Notationの略で、文字通りJavaScript のオブジェクト表記法をベースとしたデータ形式ですが、複数の言語がJSONに対応しているので、開発言語の異なるシステム間でのデータのやり取りなどに向いてます。

JSONファイルの読み込み:デコード

APIのレスポンスやJSONファイルのJSON文字列をデコードして、PHPの変数に変換します。第二引数をtrueにすると配列に変換され、デフォルトのfalseだとオブジェクトに変換されます。

サンプルコード

出力結果

JSONファイル形式での書き込み:エンコード

配列やオブジェクトからJSON文字列に変換するにはjson_encode関数を使います。第2引数には、JSON_HEX_QUOT, JSON_HEX_TAGなどの定数を指定し、第3引数にはJSONの最大のネストの深さを指定します。

また、すべての文字列データは、UTF-8 エンコードされていなければなりません。

以下は、配列をjson_encodeで変換し、sample.jsonに保存するサンプルです。

サンプルコード

sample.json

json_encodeで日本語が文字化けする

マルチバイト文字をJSONにエンコードした場合、sample.jsonのようにエスケープされ文字化けしているように見えますが、json_decode関数でデコードすることで正常に扱えるので問題ありません。

エスケープしたくないという場合、PHP5.4以降であれば、JSON_UNESCAPED_UNICODE定数を第二引数に指定すればマルチバイト文字のままJSON文字列となります。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて