JSONとは?初心者でもわかる!

なあ、プロ太先生〜。最近プログラミングでJSONって言葉をよく聞くんだけど、これって何なん?

簡単に言うと、「データを整理して書く方法」みたいなものですね。

データを整理して書く方法?それってどういうことなん?

そうですね〜。例えば友達のリストを作るとするでしょう?名前と年齢と好きな食べ物をまとめたいとしましょう。そんな時にJSONを使います。

JSONの基本

JSONは「JavaScript Object Notation」の略で、Notation「表記法」という意味です。よって、データを整理して書くための形式です。簡単な例を見てみましょう。

{
  "名前": "田中太郎",
  "年齢": 16,
  "好きな食べ物": ["ラーメン", "カレー", "寿司"]
}

へぇ、なんか波カッコ { } とかカギカッコ [ ] とか使ってるな。

そうです。波カッコは全体を囲むのに使って、中身は “キー”: 値 っていう形で書くんです。配列は [ ] で書きます。

JSONの特徴

  1. 読みやすい:人間にも機械にも読みやすい形式です
  2. 軽量:データ量が少なくて済みます
  3. 多言語対応:いろんなプログラミング言語で使えます

でも、これってどんな時に使うん?

ウェブサイトとかアプリでデータをやり取りする時によく使います。例えば、天気予報アプリとかですかね。

{
  "都市": "東京",
  "天気": "晴れ",
  "気温": 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を使って、確認するようにしましょうね。