JavaScriptのJSONとは?初心者でもわかる基本概念とデータフォーマット入門
生徒
「先生、JavaScriptでよく出てくるJSONって何ですか?文字列みたいなものですか?」
先生
「JSONは『JavaScript Object Notation』の略で、簡単にいうとデータを交換するための決まった書き方です。文字列のように見えますが、中身はデータ構造です。」
生徒
「データ構造っていうのは難しそうです。どんな形なんですか?」
先生
「イメージとしては、名前と値のペアを箱に入れて整理する感じです。たとえば、ユーザーの名前や年齢をまとめて送るときに使います。」
生徒
「なるほど!じゃあ、実際にどんな風に書くんですか?」
先生
「では、基本から順番に見ていきましょう。」
1. JSONとは何か?基本の考え方
JSONは、プログラム同士でデータをやり取りするときに使われるフォーマットです。文字列として扱えるので、サーバーとブラウザ間のデータ送受信によく使われます。簡単に言うと、情報を整理して読み書きできる形式です。
JSONの特徴は、次の通りです。
- 人間が読みやすく書きやすい
- JavaScriptで扱いやすい
- 他のプログラミング言語でも利用可能
2. JSONの基本的な書き方(オブジェクト形式)
JSONでは、データを「キー」と「値」の組み合わせで表します。オブジェクト形式は中括弧{ }で囲みます。
const user = {
"name": "太郎",
"age": 25,
"isStudent": true
};
console.log(user.name); // 太郎
この例では、名前・年齢・学生かどうかの情報をまとめています。文字列は必ずダブルクォートで囲むことがJSONのルールです。
3. JSONの配列形式の使い方
複数のデータをまとめたいときは配列形式を使います。配列は角括弧[ ]で囲みます。
const users = [
{"name": "太郎", "age": 25},
{"name": "花子", "age": 22},
{"name": "次郎", "age": 30}
];
console.log(users[1].name); // 花子
配列の中に複数のオブジェクトを入れることで、リストのようにデータを扱えます。
4. JSONとJavaScriptのオブジェクトの違い
JSONは文字列として扱われますが、JavaScriptのオブジェクトは直接操作できるデータ型です。JSONをオブジェクトに変換したり、オブジェクトをJSON文字列に変換することができます。
// オブジェクトをJSON文字列に変換
const obj = {name: "太郎", age: 25};
const jsonString = JSON.stringify(obj);
console.log(jsonString); // {"name":"太郎","age":25}
// JSON文字列をオブジェクトに変換
const parsedObj = JSON.parse(jsonString);
console.log(parsedObj.name); // 太郎
これを使うと、サーバーとやり取りする際に便利です。
5. JSONの基本ルールと注意点
JSONを使う際には、いくつかのルールがあります。
- キーは必ずダブルクォートで囲む
- 値は文字列、数値、真偽値、配列、オブジェクトのいずれか
- 最後の要素の後にカンマをつけない
ルールを守らないと、JSON.parseでエラーが出ます。
6. JSONを使った簡単なデータ送受信の例
実際にサーバーにデータを送るときも、JSONを使うのが一般的です。例えば、fetchを使った例です。
const data = {name: "太郎", age: 25};
fetch('https://example.com/api', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(data)
})
.then(response => response.json())
.then(result => console.log(result))
.catch(error => console.error('エラー:', error));
このように、オブジェクトをJSON文字列に変換して送ることで、簡単にデータをやり取りできます。
7. JSONの利点と初心者におすすめの使い方
JSONを使うと、複雑なデータも整理して送受信でき、コードもシンプルになります。初心者はまず、オブジェクトや配列をJSON形式に書き換える練習をすると理解が深まります。
// 簡単な練習
const book = {
"title": "JavaScript入門",
"pages": 200,
"author": "山田"
};
console.log(JSON.stringify(book)); // {"title":"JavaScript入門","pages":200,"author":"山田"}
8. JSONを理解するとできることの幅が広がる
JSONの基本を理解すると、データの送受信、設定ファイルの管理、APIとの連携など幅広く活用できます。JavaScriptの学習初期にJSONを覚えると、将来的にWebアプリ開発やサーバー連携の理解が格段に楽になります。
// APIからのデータ取得例
fetch('https://api.example.com/users')
.then(res => res.json())
.then(users => {
users.forEach(user => console.log(user.name));
});
まとめ
ここまで、JavaScriptにおけるJSONの基本概念やデータフォーマットの使い方について詳しく学んできました。JSONは「JavaScript Object Notation」の略であり、プログラム同士やサーバーとブラウザ間でデータをやり取りする際に不可欠なフォーマットです。文字列として扱える一方で、中身はキーと値の組み合わせによる構造化されたデータであり、オブジェクト形式や配列形式を使い分けることで、複雑な情報も整理して扱うことができます。
JSONの利点は多くあります。まず、読みやすく書きやすいため初心者にも理解しやすく、JavaScriptで直接扱えるため操作が簡単です。また、他のプログラミング言語でも互換性があるため、言語間でのデータ交換が容易になります。オブジェクトをJSON文字列に変換する JSON.stringify、JSON文字列をオブジェクトに変換する JSON.parse を駆使すれば、サーバーへのデータ送信やAPIとの連携も簡単に行えます。
JSONを使う際の基本ルールも押さえておきましょう。キーは必ずダブルクォートで囲むこと、値は文字列・数値・真偽値・配列・オブジェクトのいずれかであること、最後の要素の後にカンマをつけないことが重要です。これらのルールを守ることで、 JSON.parse 時のエラーを防ぐことができます。
配列形式のJSONを使えば、複数のデータをリストとしてまとめることができ、ユーザー情報や商品データなどを効率的に管理可能です。また、APIとの連携や設定ファイルの管理、データ送受信など、JSONを理解することでWebアプリ開発の幅も広がります。初心者の方はまず、オブジェクトや配列をJSON形式で書き換える練習から始めると、より実践的なスキルが身につきます。
生徒
「先生、JSONを使うと何が便利なんでしょうか?文字列にしか見えないのに。」
先生
「確かに見た目は文字列ですが、内部はキーと値の組み合わせでデータ構造になっています。これを使えば、複雑な情報も整理してやり取りできます。」
生徒
「なるほど。オブジェクトや配列に変換できるんですね。」
先生
「そうです。例えば、サーバーにデータを送るときも、オブジェクトをJSON文字列に変換して fetch で送信できます。」
const user = {name: "太郎", age: 25}; fetch('https://example.com/api', { method: 'POST', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(user) }) .then(res => res.json()) .then(data => console.log(data)); 生徒
「なるほど、配列形式だと複数のデータもまとめられるんですね。」
先生
「その通りです。ユーザーリストや商品リストなど、複数のオブジェクトを配列に入れることで、効率よくデータを管理できます。」
const users = [ {"name": "太郎", "age": 25}, {"name": "花子", "age": 22}, {"name": "次郎", "age": 30} ]; console.log(users[0].name); // 太郎 生徒
「JSONのルールも守らないといけませんね。キーのダブルクォートとか最後のカンマとか。」
先生
「そうです。ルールを守ることで JSON.parse のエラーを防ぎ、安定したデータ処理ができます。基本を理解すると、Webアプリ開発やAPI連携もぐっと楽になります。」
生徒
「ありがとうございます!JSONの理解が深まると、データ操作の幅も広がりそうです。」