JavaScriptにおけるオブジェクトのJSONへのシリアライズ
シリアライズとは、オブジェクトを文字列形式に変換するプロセスです。この文字列形式は、通常、ネットワーク経由で送信したり、ファイルに保存したりするために使用されます。JavaScriptでは、オブジェクトをJSON (JavaScript Object Notation)形式にシリアライズすることがよく行われます。
JSONとは
JSONは、データ交換のための軽量のテキストベースのフォーマットです。JavaScriptオブジェクトと似た構造を持ち、人間が読みやすく、また機械が簡単に解析することができます。
オブジェクトのJSONへのシリアライズ
JavaScriptの組み込み関数である JSON.stringify()
を使用して、オブジェクトをJSON文字列に変換することができます。
例
const person = {
name: "Alice",
age: 30,
city: "Tokyo"
};
const jsonString = JSON.stringify(person);
console.log(jsonString); // Output: {"name":"Alice","age":30,"city":"Tokyo"}
JSON文字列のオブジェクトへのデシリアライズ
JSON文字列からオブジェクトを作成するには、 JSON.parse()
を使用します。
const jsonString = '{"name":"Bob","age":25,"city":"New York"}';
const personObject = JSON.parse(jsonString);
console.log(personObject); // Output: {name: "Bob", age: 25, city: "New York"}
シリアライズとデシリアライズの用途
- APIの呼び出し
APIから受け取ったJSONデータをJavaScriptオブジェクトに変換し、処理することができます。 - ネットワーク通信
オブジェクトをJSON形式に変換し、サーバーやクライアント間で送信することができます。 - データの保存
オブジェクトをJSON形式で保存し、後で読み込むことができます。
注意
- JSON文字列の構文エラーがあると、
JSON.parse()
がエラーを発生させます。 - JSONは単純なデータ型のみサポートしています。複雑なオブジェクトや関数を含む場合は、シリアライズ前に適切な変換が必要となる場合があります。
const person = {
name: "Alice",
age: 30,
city: "Tokyo"
};
const jsonString = JSON.stringify(person);
console.log(jsonString); // Output: {"name":"Alice","age":30,"city":"Tokyo"}
const jsonString = '{"name":"Bob","age":25,"city":"New York"}';
const personObject = JSON.parse(jsonString);
console.log(personObject); // Output: {name: "Bob", age: 25, city: "New York"}
ライブラリの使用
JavaScriptのエコシステムには、オブジェクトをJSONに変換する機能を提供する多くのライブラリが存在します。これらのライブラリは、組み込みの JSON.stringify()
関数よりも柔軟性や追加機能を提供することがあります。
- lodash
_.cloneDeepWith()
メソッドを使用して、オブジェクトをJSONに変換しながら、
javascript json