現役システムエンジニアの備忘録

技術スキルや用語などの記録を残していきます

Ajax / fetch / API(非同期処理)

【JavaScript入門】JSONの扱い方|JSON.parse・JSON.stringifyの基本と実務での使い方を初心者向けに解説

投稿日:

この記事で分かること

  • JSONとは何か(データ形式の基本)
  • JSON.parse の使い方(文字列 → オブジェクト)
  • JSON.stringify の使い方(オブジェクト → 文字列)
  • API通信でのJSONの扱い方
  • 実務での注意点(undefined・循環参照など)

JSON は、API 通信で最も広く使われているデータ形式で、JavaScript と非常に相性の良い軽量なテキストデータです。
この記事では、JSON.parseJSON.stringify の基本から、fetch との組み合わせ、そして実務で注意すべきポイントまで、API 連携に必須の知識を分かりやすく解説します。



JSONとは?

JSON(JavaScript Object Notation) は、
データをやり取りするための軽量なテキスト形式です。

API通信ではほぼ必ず JSON が使われます。

JSONの例


{
  "name": "Shin",
  "age": 30,
  "skills": ["JavaScript", "HTML", "CSS"]
}

JavaScript のオブジェクトに似ていますが、
JSON はあくまで「文字列」 です。



JSON.parse(文字列 → オブジェクト)

API から返ってくる JSON は文字列なので、
JavaScript で扱うには JSON.parse が必要です。


const json = '{"name":"Shin","age":30}';
const obj = JSON.parse(json);

console.log(obj.name); // Shin

JSON.parse を使うと、
文字列が JavaScript のオブジェクトに変換されます。

JSON.stringify(オブジェクト → 文字列)

API にデータを送るときは、
オブジェクトを JSON 文字列に変換する必要があります。


const obj = { name: "Shin", age: 30 };
const json = JSON.stringify(obj);

console.log(json); // {"name":"Shin","age":30}

fetchPOST でよく使われます。

fetch と JSON の組み合わせ(最重要)

① JSON を受け取る


const res = await fetch("/api");
const data = await res.json(); // JSON.parse と同じ

fetchres.json() は内部で JSON.parse を実行しています。

② JSON を送る


fetch("/api", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ name: "Shin" })
});

API通信では JSON.stringify が必須です。

JSONでよくあるエラーと注意点

JSON.parse でエラーになる

原因は「JSONとして不正な文字列」です。


JSON.parse("{name: Shin}"); // ❌ エラー

JSON のルール:

  • キーは必ずダブルクォート
  • 文字列もダブルクォート
  • 末尾のカンマは禁止

JSON.stringify できない値がある

  • undefined
  • 関数
  • Symbol

JSON.stringify({ a: undefined }); // {}

undefined は無視されるため注意が必要です。

③ 循環参照は stringify できない


const obj = {};
obj.self = obj;

JSON.stringify(obj); // ❌ エラー

循環参照は JSON では表現できません。

整形して出力する(インデント付き)


const json = JSON.stringify(obj, null, 2);
console.log(json);

整形された JSON はログ確認に便利です。



JSON に関するよくある質問(FAQ)

Q1

JSON と JavaScript のオブジェクトは何が違いますか?

A

JSON は文字列、オブジェクトは JavaScript のデータ構造です。用途が異なります。

Q2

JSON.parse がエラーになる原因は何ですか?

A

JSON の形式が不正な場合です。キーや文字列は必ずダブルクォートで囲む必要があります。

Q3

JSON.stringify できない値はありますか?

A

undefined、関数、Symbol などは JSON に変換できません。

Q4

fetchres.json()JSON.parse の違いは?

A

res.json() は内部で JSON.parse を実行しており、fetch 専用の便利メソッドです。



まとめ

JSON は API 通信の中心となるデータ形式で、
JSON.parseJSON.stringify は必須スキル です。

  • JSON.parse → 文字列 → オブジェクト
  • JSON.stringify → オブジェクト → 文字列
  • fetchPOST で必ず使う
  • undefined や循環参照は扱えない

非同期処理・API通信を学ぶ上で、
JSON の理解は欠かせません。



関連記事

【JavaScript入門】APIレスポンスを画面に反映する方法|fetchで取得したデータをDOMに表示する手順を初心者向けに解説

この記事で分かること fetch で取得したデータを画面に表示する方法 JSON を DOM に反映する基本パターン リスト表示・テーブル表示の実装例 ローディング表示・エラー表示の作り方 実務で使う …

【JavaScript入門】APIのエラー処理|HTTPステータス・例外処理・fetch/XHRの違いを初心者向けに解説

この記事で分かること API通信で発生するエラーの種類 HTTPステータスコードの判定方法 fetch と XHR のエラー処理の違い try/catch を使った例外処理 実務でのエラー処理のベスト …

【JavaScript入門】XMLHttpRequest(XHR)の使い方|GET・POSTリクエストの実装方法を初心者向けに解説

この記事で分かること XMLHttpRequest(XHR)の基本構造 GETリクエストの書き方 POSTリクエストの書き方 readyState・status の扱い方 実務での注意点(非同期処理・ …

【JavaScript入門】Ajaxとは?仕組み・特徴・XMLHttpRequestを初心者向けにわかりやすく解説

この記事で分かること Ajaxとは何か(技術の組み合わせで成り立つ概念) 非同期通信の仕組みとメリット XMLHttpRequestの役割と特徴 Googleマップやサジェストで使われる理由 Ajax …

【JavaScript入門】fetch APIの基本|XHRとの違い・書き方・レスポンス処理を初心者向けに解説

この記事で分かること fetch API の基本構文 XMLHttpRequest(XHR)との違い GET・POST リクエストの書き方 レスポンスの扱い方(text / json) Promise …

このブログは Xserver 上の WordPress で運用しています。
表示速度が速く、安定しているのでブログ初心者にもおすすめです。

レンタルサーバー エックスサーバー

-Ajax / fetch / API(非同期処理)

執筆者: