Ajaxに使える!PHPで配列をJSONに変換する方法

JSONは13日の金y・・・ではないです。

JavaScript Object Notation の略で、構造化されたテキストデータのことです。

と言ってもHTMLやXMLのようにタグがあるわけではなく、どちらかと言うとPHPで配列を出力したときと同じような形です。

 

Ajaxを使うときに、PHPで処理をして結果を画面に表示させるような場面は多いと思います。

JSONなんて使わずにPHPでタグを書いてそのまま渡せばいいやん!と思う人もいるかもしれませんが、プログラムのパフォーマンスで一番影響を与えるのが通信です。

PHP側でHTMLコードを生成して渡すより、JSON形式で必要なデータだけを渡しJavaScriptでHTMLを構築した方が通信する量が減るのでパフォーマンスが改善されます。

 

Ajax時だけでなく、PHP内でも配列はオブジェクトなのでJSON形式にしてログに出力するなど便利に使える部分があります。

今回は配列をJSONに変換したり、JSONを配列に変換する方法をご紹介します。

PHPの配列をJSONに変換

PHPの配列をJSONに変換するのは json_encode() という関数を使います。

これで作成したJSONをHTML画面に出力した結果が次です。

なんか日本語の部分が変なコードになってますね。

これは文字化けではなく、ユニコードという形式になっているだけで問題はありません。

 

一応日本語をユニコードに変換しないでJSONを作る方法をお伝えします。

JSONに変換する json_encode() を使うのは同じですが、第二引数に JSON_UNESCAPED_UNICODE を指定します。

これで日本語がそのまま表示されます。

JSONをPHPの配列に変換

【前提】上で作成したJSONを sample031.json というファイルを作成し、PHPファイルと同じディレクトリに入れました。

1行目でファイルを読み込み、2行目でJSONに変換しています。

作成した配列を画面に出力すると次のようになっています。

JSONで返すAjaxのサンプル

サンプルの仕様は、「ボタンA」を押すと、PHPにアクセスし、ユーザーリスト(名と年齢)の一覧を取得し画面に表示する。

ユーザーリストはDBから取得したことを想定し、配列で定義しJSONに変換して受け取る。

HTML・CSS

jQuery

PHP

データ

今回は配列で定義してますが、DBに入ってたらこんな感じです。

名前 年齢
佐藤 31
鈴木 30
田中 29
山田 28
豊田 65

 

実際に動くものは次のボタンから見てください。

まとめ

JSONとは構造化されたテキストデータのこと。

WEBサイトのパフォーマンスで一番のネックが通信。その通信でJSONを使うことによりデータを軽くすることが出来る。

他にもJSONは使い道ありそうです。

面白い使い道を探して試してみてください。

コロナの影響でみんな大変だから俺もなんかできること

僕は福井県に住んでいるのですが、戦時中に福井大空襲にあい、その直後に大震災にあってボロボロになった話をおばあちゃんに聞きました。

それでも復活することができ、不死鳥の町と言われるようになりました。

先人達には心から感謝し尊敬します。

リーマンショック、東日本大震災、コロナと数十年に一度と言われる被害が立て続けに起きていますが、僕たちは強いです。

今は苦しいかもしれませんがきっと復活できます。

僕は低学歴ですし小さな小さな粒でしかないですが、プログラミングに関しては必死に勉強し15年以上ごはんにありつけています。

プログラミングを勉強している人の役に立てるほどのスキルはあると思っています。

なので1人でもんもんと悩んでいる若手のエンジニア向けに質問を受け付けることにします。

自宅で待機されている間もパソコンとインターネットがあればプログラミングの勉強はできます。

  • PHP
  • SQL
  • HTML・CSS
  • jQuery

とは言ってもいきなり答えを聞いていたのではなかなか成長できないと思うのです。

なので質問の際には次のことをご連携ください。

  • 何をやりたいか
  • どんなことを調べたか、検索キーワードと参考にしたページのURL
  • 調べた結果どこが分からないか
  • できるなら試したコード

メッセージいはとりあえずTwitterにでもください。

質問はこちら

すぐに返事できないかもしれませんがご了承ください。

コメントを残す

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

CAPTCHA