JSON.parse / JSON.stringifyの基礎
オブジェクトをJSON文字列に変換して戻す方法を学びます。replacer/reviverも簡単に扱い、不正な入力を安全に処理します。
「JSON.parse / JSON.stringifyの基礎」はCoddyKit上の無料JavaScript Academyレッスンです。 これはレッスン1/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJavaScript Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 JavaScript Academyコースには全3レッスンが含まれています。
なぜJSONなのか
目標:安全にシリアライズとパースを行います。
- JSON.stringify → 文字列
- JSON.parse ← 文字列
- replacer/reviverを試す
- 基本的な安全対策

stringify()
JSON.stringify(value)を使うと、JSON文字列を取得できます。読みやすくするには、spaceに数値(例:2)を渡します。
// Turn a value into a JSON string
const user = { name: "Ayla", score: 12, active: true };
const json = JSON.stringify(user);
console.log("json:", json);
// Optional: pretty-print with spaces (2)
const pretty = JSON.stringify(user, null, 2);
console.log("pretty:", pretty);

parse()
JSON.parse(text)は値を返します。入力は有効なJSON文字列でなければなりません。
// Parse a JSON string back to a value
const raw = "{\"name\":\"Ayla\",\"score\":12,\"active\":true}";
const value = JSON.parse(raw);
console.log("name:", value.name, "score:", value.score);

Replacer(stringify)
replacer(key, value)を使うと、シリアライズ時にフィールドを除外したり変更したりできます(例:パスワードを隠す)。
// Replacer: filter or transform keys during stringify
const account = { id: 7, password: "secret", role: "user" };
// Hide sensitive fields
function replacer(key, value) {
if (key === "password") return undefined; // drop it
return value;
}
const safeJson = JSON.stringify(account, replacer, 2);
console.log("safeJson:", safeJson);

Reviver(parse)
reviver(key, value)を使うと、パース中に値を変換できます(例:文字列をDateに変換する)。
// Reviver: convert specific strings back into richer types
const orderJson = "{\"when\":\"2024-06-01T10:00:00Z\",\"total\":25}";
function reviver(key, value) {
if (key === "when" && typeof value === "string") {
return new Date(value); // restore Date
}
return value;
}
const order = JSON.parse(orderJson, reviver);
console.log("is Date?", order.when instanceof Date);
console.log("total:", order.total);

安全対策と制限
ヒント:
- 信頼できない入力を扱う場合は、JSON.parseをtry/catchで囲みます。
- ログへの記録や共有の前に、replacerを使って機密フィールドを削除します。
- JSONでは関数やプロトタイプ情報が失われ、データだけがシリアライズされます。

stringifyとparseのクイズ
簡単な確認:値をシリアライズします。

まとめ
まとめ:JSON.stringify/JSON.parseで値を変換します。replacerでフィールドを絞り込み、reviverでDateのような型を復元します。安全のためにtry/catchも追加します。

よくある質問
「JSON.parse / JSON.stringifyの基礎」レッスンは無料ですか?
はい。「JSON.parse / JSON.stringifyの基礎」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、JavaScript Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 JavaScript Academyコースには全3レッスンが含まれています。
「JSON.parse / JSON.stringifyの基礎」で何を学びますか?
オブジェクトをJSON文字列に変換して戻す方法を学びます。replacer/reviverも簡単に扱い、不正な入力を安全に処理します。 ブラウザで直接実行するハンズオンコードでJavaScript Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
JavaScript Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのJavaScript Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/3です。
「JSON.parse / JSON.stringifyの基礎」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このJavaScript Academyレッスンでコードを書いて実行できますか?
はい。すべてのJavaScript Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- JSON.parse / JSON.stringifyの基礎
- 構造化クローンとURLSearchParams
- 安全なJSONパースの戦略