なあ、プロ太先生〜。最近プログラミングでJSONって言葉をよく聞くんだけど、これって何なん?
簡単に言うと、「データを整理して書く方法」みたいなものですね。
データを整理して書く方法?それってどういうことなん?
そうですね〜。例えば友達のリストを作るとするでしょう?名前と年齢と好きな食べ物をまとめたいとしましょう。そんな時にJSONを使います。
JSONの基本
JSONは「JavaScript Object Notation」の略で、Notationは「表記法」という意味です。よって、データを整理して書くための形式です。簡単な例を見てみましょう。
{
"名前": "田中太郎",
"年齢": 16,
"好きな食べ物": ["ラーメン", "カレー", "寿司"]
}
へぇ、なんか波カッコ { } とかカギカッコ [ ] とか使ってるな。
そうです。波カッコは全体を囲むのに使って、中身は “キー”: 値 っていう形で書くんです。配列は [ ] で書きます。
JSONの特徴
- 読みやすい:人間にも機械にも読みやすい形式です
- 軽量:データ量が少なくて済みます
- 多言語対応:いろんなプログラミング言語で使えます
でも、これってどんな時に使うん?
ウェブサイトとかアプリでデータをやり取りする時によく使います。例えば、天気予報アプリとかですかね。
{
"都市": "東京",
"天気": "晴れ",
"気温": 25,
"湿度": 60
}
なるほど!こうやって整理されてると、プログラミングで使いやすそうやな。
そうでしょう?JSONは本当に便利です。高校生のうちに覚えとくと、将来プログラミングする時に役立ちますよ!
JSONの実際の使い方
JSONって実際どうやって使うの?
では、PHPでの使い方を見てみましょう。
JSONのPHPでの使用例
<?php
// JSONデータ
$json_data = '{"名前": "佐藤花子",
"年齢": 17,
"趣味": ["バスケ", "料理"]
}';
// JSONをPHPのデータ構造に変換
$data = json_decode($json_data, true);
// データの一部を使う。最後の「. "\n"」の部分は改行を意味します。
echo "名前: " . $data['名前'] . "\n";
echo "年齢: " . $data['年齢'] . "\n";
echo "最初の趣味: " . $data['趣味'][0] . "\n";
?>
このコードを実行すると、以下のように表示されます。
名前: 佐藤花子
年齢: 17
最初の趣味: バスケ
へ〜。こんな風にデータを取り出せるのか〜。
そうです。json_decode() を使うと、JSON→PHPに変換されるんです。
逆に、PHP→JSONに変換することもできますよ。
<?php
// PHPのデータ
$php_data = array(
"科目" => "数学",
"点数" => 85,
"合格" => true
);
// PHPデータをJSON文字列に変換
$json_string = json_encode($php_data, JSON_UNESCAPED_UNICODE);
echo $json_string;
?>
このコードを実行すると、以下のように表示されます。
{"科目":"数学","点数":85,"合格":true}
へ〜。さっきとは逆だな〜。decodeじゃなくて、encodeになってるな!
そうです。json_encode() を使うと、PHP→JSON形式に変換されるんです。
ちなみに、JSON_UNESCAPED_UNICODE ってついてるけど、これはなに?
いいところに目をつけましたね!それは、日本語もちゃんと読めるJSONにするという意味で、つけないと以下のように文字化けしてしまいます。
{"科目":"\u6570\u5b66","点数":85,"合格":true}
なるほど!じゃあ、日本語を使うなら、JSON_UNESCAPED_UNICODEをつけた方がいいんやな!
そうですね。日本語を扱うときは覚えておくといいでしょう。
練習問題
では、ここで練習問題をやってみましょう!
おお!!ええな!!頑張るで〜!!!!
問題1:次のJSONデータから、”email”の値を取り出すPHPコードを書いてみましょう。
{
"id": 1,
"name": "山田太郎",
"email": "yamada@example.com",
"age": 18
}
問題2:次のPHPの配列をJSON文字列に変換するコードを書いてみましょう。
$data = array(
"都道府県" => "大阪府",
"人口" => 8839469,
"面積" => 1905.14,
"県庁所在地" => "大阪市"
);
問題3:あなたの好きな本について、タイトル、著者、出版年、ジャンルをJSONで表現してみましょう。
解答
問題1:次のJSONデータから、”email”の値を取り出すPHPコードを書いてみましょうの解答
<?php
$json_string = '{"id": 1,"name": "山田太郎","email": "yamada@example.com","age": 18}';
$data = json_decode($json_string, true);
echo $data['email']; // 出力: yamada@example.com
?>
JSON→PHPのときは、json_decodeを使うんやな!覚えたで!
問題2:次のJSONデータから、”email”の値を取り出すPHPコードを書いてみましょうの解答
<?php
$data = array(
"都道府県" => "大阪府",
"人口" => 8839469,
"面積" => 1905.14,
"県庁所在地" => "大阪市"
);
$json_string = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json_string;
// 出力: {"都道府県":"大阪府","人口":8839469,"面積":1905.14,"県庁所在地":"大阪市"}
?>
PHP→JSONのときは、json_encodeを使うねんな!
日本語の文字化けせんように、JSON_UNESCAPED_ENCODEも忘れずつけるんや!
すばらしい!最後の1問です!!頑張ってください!!
問題3:あなたの好きな本について、タイトル、著者、出版年、ジャンルをJSONで表現してみましょうの解答
{
"タイトル": "人間失格",
"著者": "太宰治",
"出版年": 1948,
"ジャンル": "小説"
}
これでどうや〜〜!!!達成感あるわ〜!!
全問正解です!!成長しましたね!!
まとめ
JSONは、データを整理して書くための簡単で便利な方法です。PHPやJavaScriptなど、様々なプログラミング言語でJSONを扱うことができます。各言語での具体的な使い方は少し違いますが、基本的な概念は共通しています。ウェブ開発やアプリ開発で広く使われているので、ぜひ覚えておきましょう!実際のプログラムでの使い方や、ファイルとしての扱い方を知っておくと、より実践的にJSONを活用できます。ただ、現代では、書き方や変換の仕方はAIが教えてくれるので覚える必要はありません。言語別に変換ができ、使用できるという概念の部分をしっかりと押させておき、書き方を忘れてしまったら、AIを使って、確認するようにしましょうね。