ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScriptのシリアル化とは何ですか

JavaScriptのシリアル化とは何ですか

青灯夜游
青灯夜游オリジナル
2021-09-09 14:43:112560ブラウズ

シリアル化とは、メモリ内の変数を保存または送信できる文字列に変換するプロセスを指します。JavaScript では、「JSON.stringify()」メソッドを使用してシリアル化を実現できます。値を JSON 文字列に変換します。

JavaScriptのシリアル化とは何ですか

このチュートリアルの動作環境: Windows7 システム、JavaScript バージョン 1.8.5、Dell G3 コンピューター。

いわゆるシリアル化は、メモリ内の変数を保存または送信できる文字列に変換するプロセスです。逆シリアル化とは、この文字列を、使用する適切なタイミングで元の変数に変換することです。これら 2 つのプロセスを組み合わせることで、データの保存と送信の操作を簡単に完了できるため、プログラムの保守性が向上します。

javascript シリアル化

JavaScript では、「JSON.stringify()」メソッドを使用してシリアル化を実現できます。値は次のとおりです。 JSON文字列に変換されます。逆シリアル化には、「JSON.parse()」メソッドを使用する必要があります。

文法形式: JSON.stringify(value[, replacer[, space]])

パラメータの説明:

  • value:

    必須。変換される JavaScript 値 (通常はオブジェクトまたは配列)。

  • replacer:

    オプション。結果の変換に使用される関数または配列。

    replacer が関数の場合、JSON.stringify はその関数を呼び出し、各メンバーのキーと値を渡します。元の値の代わりに戻り値を使用します。この関数が未定義を返した場合、メンバーは除外されます。ルート オブジェクトのキーは空の文字列「"」です。

    replacer が配列の場合、配列内のキー値を持つメンバーのみが変換されます。メンバーは配列内のキーと同じ順序で変換されます。

  • #space:

    オプションで、テキストにインデント、スペース、改行が追加されます。スペースが数値の場合、戻り値のテキストは、指定された数のレベルごとにインデントされます。スペース。スペースが 10 より大きい場合、テキストはスペース 10 個分インデントされます。スペースには、\t などの数字以外の文字も使用できます。

例: JSON.stringify() を使用してオブジェクトをシリアル化します。

JavaScriptのシリアル化とは何ですか

JavaScriptのシリアル化とは何ですか

ご覧のとおり、exampleStr と exampleObj2 には y:unknown コンテンツがありません。これは次のことを示しています: JSON 構文は JavaScript 構文のサブセットです。JavaScript のすべての値を表すことはできません。JSON 構文でサポートされていない属性については、シリアル化後に省略されます。詳細なルールは次のとおりです:

① JavaScript の 5 つのプリミティブ型について、JSON 構文は数値、文字列、ブール値、null の 4 つの型をサポートし、未定義はサポートされません。 ②NaN、Infinity、および -Infinity シリアル化の結果は null;

#③JSON 構文は関数をサポートしません;

#④JSON 構文は RegExp オブジェクトと Error オブジェクトを除き、他のすべてのオブジェクトをサポートします;

⑤日付オブジェクト シリアル化の結果は ISO 形式の文字列ですが、JSON.parse() は文字列形式を保持しており、日付オブジェクトに復元しません;

⑥JSON.stringify() はオブジェクトをシリアル化することしかできません。独自のプロパティ;

上記の例からわかるように、上記のルールが満たされている場合は、オブジェクトのシリアル化と逆シリアル化を通じてオブジェクトのディープ コピーを完了することもできます。

[推奨学習:

JavaScript 上級チュートリアル

]

以上がJavaScriptのシリアル化とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。