JSON (JavaScript Object Notation) は、人間が読み書きしやすく、マシンが解析して生成しやすい軽量のデータ交換形式です。 JavaScript には、JSON 文字列をオブジェクトに解析し、オブジェクトを JSON 文字列に変換するための組み込みメソッドが用意されています。
JSON.parse() メソッドは、JSON 文字列を JavaScript オブジェクトに変換するために使用されます。
JSON.parse(text[, reviver]);
A.単純な解析
const jsonString = '{"name": "John", "age": 30}'; const parsedData = JSON.parse(jsonString); console.log(parsedData.name); // Output: John console.log(parsedData.age); // Output: 30
B.リバイバー機能を使う
reviver 関数を使用して、解析プロセスをカスタマイズできます。
const jsonString = '{"name": "John", "birthYear": 1990}'; const parsedData = JSON.parse(jsonString, (key, value) => { if (key === "birthYear") { return 2024 - value; // Convert birth year to age } return value; }); console.log(parsedData.birthYear); // Output: 34
無効な JSON を処理するには、常に JSON.parse() を try...catch ブロックでラップします。
const invalidJson = "{name: 'John', age: 30}"; // Invalid JSON (keys must be in quotes) try { const data = JSON.parse(invalidJson); } catch (error) { console.error("Invalid JSON:", error.message); }
JSON.stringify() メソッドは、JavaScript オブジェクトを JSON 文字列に変換します。
JSON.stringify(value[, replacer[, space]]);
A.単純な文字列化
const data = { name: "John", age: 30 }; const jsonString = JSON.stringify(data); console.log(jsonString); // Output: {"name":"John","age":30}
B.置換関数の使用
replacer 関数は、オブジェクトのプロパティをフィルターまたは変換します。
const data = { name: "John", age: 30, password: "secret" }; const jsonString = JSON.stringify(data, (key, value) => { if (key === "password") return undefined; // Exclude passwords return value; }); console.log(jsonString); // Output: {"name":"John","age":30}
C.インデントの追加
space パラメーターは、インデントを使用して出力をフォーマットします。
const data = { name: "John", age: 30 }; const jsonString = JSON.stringify(data, null, 2); console.log(jsonString); // Output: // { // "name": "John", // "age": 30 // }
オブジェクト内の循環参照により、JSON.stringify() がエラーをスローします。
const circularObject = {}; circularObject.self = circularObject; try { JSON.stringify(circularObject); } catch (error) { console.error("Cannot stringify circular object:", error.message); }
HTTP リクエストで送信する前に、JavaScript オブジェクトを JSON 文字列に変換します。
const data = { name: "John", age: 30 }; fetch("https://example.com/api", { method: "POST", headers: { "Content-Type": "application/json" }, body: JSON.stringify(data) });
localStorage を使用して JSON 形式でデータを保存および取得します。
const data = { name: "John", age: 30 }; localStorage.setItem("user", JSON.stringify(data)); // Storing data const userData = JSON.parse(localStorage.getItem("user")); // Retrieving data console.log(userData.name); // Output: John
JSON メソッドを使用してオブジェクトのディープ コピーを作成します (関数または循環参照では機能しません)。
JSON.parse(text[, reviver]);
JSON | JavaScript Object |
---|---|
Text format (string) | In-memory data structure |
Keys must be strings (quoted) | Keys can be strings or symbols |
Cannot store methods/functions | Can store methods/functions |
JSON 処理をマスターすることは、最新のデータ駆動型 Web アプリケーションを構築するために不可欠なスキルです。
こんにちは、アバイ・シン・カタヤットです!
私はフロントエンドとバックエンドの両方のテクノロジーの専門知識を持つフルスタック開発者です。私はさまざまなプログラミング言語やフレームワークを使用して、効率的でスケーラブルでユーザーフレンドリーなアプリケーションを構築しています。
ビジネス用メールアドレス kaashshorts28@gmail.com までお気軽にご連絡ください。
以上がJavaScript での JSON 処理をマスターする: 解析と文字列化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。