JSON.stringify()
JSONの一般的な用途は、Webサーバーとの間でデータを交換することです。
データをWebサーバーに送信する場合、データは文字列でなければなりません。
JSON.stringify()を使用してJavaScriptオブジェクトを文字列に変換します。
JavaScriptオブジェクトを文字列化する
JavaScriptに次のオブジェクトがあるとします。
const obj = {name: "John", age: 30, city: "New York"};
JavaScript関数を使用してJSON.stringify()文字列に変換します。
const myJSON = JSON.stringify(obj);
結果は、JSON表記に従った文字列になります。
myJSONは文字列になり、サーバーに送信する準備が整いました:
例
const obj = {name: "John", age: 30, city: "New York"};
const myJSON = JSON.stringify(obj);
次の章では、JSONをサーバーに送信する方法を学習します。
JavaScript配列を文字列化する
JavaScript配列を文字列化することもできます。
JavaScriptに次の配列があるとします。
const arr = ["John", "Peter", "Sally", "Jane"];
JavaScript関数を使用するJSON.stringify()それを文字列に変換します。
const myJSON = JSON.stringify(arr);
結果は、JSON表記に従った文字列になります。
myJSONは文字列になり、サーバーに送信する準備が整いました:
次の章では、JSON 文字列をサーバーに送信する方法を学習します。
データの保存
データを保存する場合、データは特定の形式である必要があり、どこに保存するかは関係ありません。文章は常に有効な形式の1つです。
JSONを使用すると、JavaScriptオブジェクトをテキストとして保存できます。
例
ローカルストレージへのデータの保存
// Storing data:
const myObj = {name: "John", age: 31, city: "New York"};
const myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
// Retrieving data:
let text = localStorage.getItem("testJSON");
let obj = JSON.parse(text);
document.getElementById("demo").innerHTML = obj.name;
例外
日付の文字列化
JSONでは、日付オブジェクトは許可されていません。このJSON.stringify()関数は日付を文字列に変換します。
例
const obj = {name: "John", today: new Date(), city : "New York"};
const myJSON = JSON.stringify(obj);
受信側で文字列を日付オブジェクトに変換し直すことができます。
文字列化関数
JSONでは、関数はオブジェクト値として許可されていません。
このJSON.stringify()関数は、JavaScriptオブジェクトからキーと値の両方の関数を削除します。
例
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
const myJSON = JSON.stringify(obj);
JSON.stringify()関数を実行する前に関数を文字列に変換する場合、これは省略できます。
例
const obj = {name: "John", age: function () {return 30;}, city: "New York"};
obj.age = obj.age.toString();
const myJSON = JSON.stringify(obj);
JSONを使用して関数を送信すると、関数のスコープが失われ、受信者はeval()を使用してそれらを関数に戻す必要があります。