カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

PHPでJSON形式のデータを簡単に扱う

この記事は最終更新日から1年以上経過しています。

PHPにはJSON形式のデータを簡単に扱える関数が用意されています。
PHP5.2.0以降であればコアに含まれるので追加インストールの必要はありません。

例として会員システムで登録ユーザーの最終ログイン日とログイン回数を記録するというプログラムとします。

まずは以下のようなサンプル配列を作成します。

$VALUE["suzuki"]    = array("last_login_date" => "13-10-26", "count" => 1);
$VALUE["hashimoto"] = array("last_login_date" => "13-10-28", "count" => 5);

確認のため、出力してみます。

Array
(
    [suzuki] => Array
        (
            [last_login_date] => 13-10-26
            [count] => 1
        )

    [hashimoto] => Array
        (
            [last_login_date] => 13-10-28
            [count] => 5
        )

)

作成した配列を引数として渡し、JSONデータを作成します。

$json = json_encode($VALUE);

出力してみましょう。

{"suzuki":{"last_login_date":"13-10-26","count":1},"hashimoto":{"last_login_date":"13-10-28","count":5}}

たったこれだけでJSONデータが作成できます。

次はデータに変更を加えてみます。
まずは、JSONから配列にデコードします。

$VALUE = json_decode($json);

ログイン日を更新し、カウントを1つ増やします。

$VALUE->hashimoto->last_login_date = date("y-m-d");
$VALUE->hashimoto->count++;

print_rで出力してみましょう。

stdClass Object
(
    [suzuki] => stdClass Object
        (
            [last_login_date] => 13-10-26
            [count] => 1
        )

    [hashimoto] => stdClass Object
        (
            [last_login_date] => 13-10-30
            [count] => 6
        )

)

変更したデータを再度JSON形式に変換。

$json = json_encode($VALUE);

先程デコードしたデータはオブジェクト型でしたが、
連想配列にすることもできます。
連想配列にするには第2引数にtrueを指定します。

$VALUE = json_decode($json, true);

出力してみましょう。

Array
(
    [suzuki] => Array
        (
            [last_login_date] => 13-10-26
            [count] => 1
        )

    [hashimoto] => Array
        (
            [last_login_date] => 13-10-30
            [count] => 6
        )

)

いかがでしたか?
json_encode, json_decode関数だけで簡単に実装できてしまいます。
データベースを使うほどでもない小規模なデータ管理などにも使えるのではないでしょうか。

この記事がお役に立ちましたらシェアお願いします
9,143 views

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です