JSON.stringfiyのシリアライズ

JSON.stringify()メソッドはジャバスクリプトに変換された値(オブジェクトまたは配列)JSONの文字列指定した場合、代替の関数であり、値は、選択的に交換してもよいし、指定された場合に代替がアレイである、任意のみ指定されたプロパティを含む配列

 

構文:

JSON.stringify(値[、代替[スペース]])

 

値:にシリアライズされるJSONの文字列値

代替(任意に:パラメータが機能し、シリアル化プロセスがある場合、シリアル化された各属性値を変換し、関数の処理が施され、パラメータが配列の場合、これだけに含まれ名前配列が最終にシリアライズされる属性JSONのパラメータがある場合、文字列はnull で提供またはしない、オブジェクトのプロパティは、シリアライズされます。

スペース(オプション:造園出力(のためのくぼみと、空の文字列を指すプリティプリント; パラメータは、ライン上のスペースの数表す数値である場合、10 未満であり、1 はスペースを意味し、。パラメータは、文字列(最初の10の文字の文字列)、スペースなどの文字列がない場合は、いかなる場合またはヌル)のスペースを提供することはありません

 

説明:

JSON.stringify()は、各値のためにインストールされるJSONのフォーマット

  1. 昼光ローディング値が有する変換 toJSON()値がシリアル化されるかを定義する方法を
  2. 非オブジェクトのプロパティの配列は、特定の順序の順序に保証することができない文字列に表示されます。
  3. ブール値、数値、文字列ラッパー・オブジェクトのシリアル化プロセスは、対応する元のオブジェクトに変換されます
  4. 未定義の、任意の関数のシンボル値、シリアル化プロセスを無視することができる(非配列プロパティ値に被験者に現れる)、またはに変換される(ヌル配列に現れます関数は、未定義の変換器が別々に装着された場合、返され、未定義としてJSON.stringify(関数(){})またはJSON.stringify(未定義)
  5. (オブジェクト間の無線ループを形成し、お互いを参照)、この方法を実行するにはエラーをスロー含ま円形の参照オブジェクト
  6. 持つすべての記号はあっても、完全に無視されるプロパティのキー属性で代用のパラメータは必須でそれらを含める指定します
  7. 日付コールの日付toJSONは()に変換され、文字列(文字列とDate.tolSoString() ) したがって、文字列として扱うことができます
  8. NaN 無限大のフォーマットと値nullはとして扱われNULL
  9. 含むオブジェクトの他の種類、マップ/セット/ WeakMap / WeakSet 可算のプロパティの配列のみ、

 

1  // JSON.stringify()
2  // せ= JSON.stringify({})。// {} 
3  // = JSON.stringify(真)とします。//真
4  // = JSON.stringify( 'foo'を)聞かせて。// 'foo'で
5  // = JSON.stringifyせ([1、 'foo'を、偽])。// [1、 'foo'で、偽] 
6  // = JSON.stringifyせ({X:5})。// { "X":5} 
7  
8  // = JSON.stringifyせ([新しい番号(1)、新たな文字列( '偽')、新たなブール(偽)])。// [1、 "偽"偽] 
9  
10  
11  // = JSON.stringify(LET 
12  //      Object.create(
13  //          ヌルを
14  //          { 
15  //              X:{値: 'X'、列挙:偽}、
16  //              Y:{値: 'Y'、列挙:真}、
17  //
 18  //          } 
19  // 
20  // ); // { "Y": "Y"}

 

 

 

2、代用のパラメータ

代替パラメータは関数または配列であってもよいです。機能としては、それは2つのパラメータがあり、キー()の値()直列化されます

(1)  戻り場合数、追加対応する文字列に変換されたJSON 文字列を

(2)  戻り文字列、属性値文字列として追加されるJSON での

(3)  を返すブール「真」  または「偽」の  属性として属性に追加されたJSON 文字列

(4)  への他のオブジェクトの再帰的配列の戻り文字なら JSONの文字列、各属性を求める代替方法、物体、この場合には、関数でない限りしないJSONの出力列

(5)  リターンがあれば未定義、プロパティがないJSONの出力は、

 

注:できないrepacer 配列値(から除去方法、リターン場合未定義または機能が、するヌル置換

関数

1つの 機能の代替(キー、値){
 2      であればtypeof演算値=== '列' ){
 3          リターンは未定義。
4      }
 5      戻り値。
6  }
 7  
8  するvar FOO = {基礎:「Mozillaの、モデル: 'ボックス'、週:45 }。
9  
10  VAR jsonString = JSON.stringify(FOO、代用)。
11にconsole.log(jsonString)。// { "週":45}

 

 

 

 

(アレイ)

場合は代替品は、配列、に配列値配列であるJSON 属性名の文字列は、

1つの VARの FOO = {基礎:「Mozillaの、モデル: 'ボックス'、週:45 }。
2にconsole.log(JSON.stringify(FOO、[ 'モデル'、 '週'])); // { "モデル": "ボックス"、 "週":45}

 

3、スペースのパラメータ

スペースが数である場合、結果の文字列のピッチを制御するためのパラメータは、デジタル値の複数のそれぞれは、(文字列の前のものにまでつのスペースをインデントされている10 番目)、それが文字列である場合、マルチレベルのインデントの列よりも、各レベル

 

1にconsole.log(JSON.stringify({:2、B:4}、NULL、」 " ));
2  // { 
3  //      "":2、
4  //      "B":4 
5  // } 
6  
7  

 

 

toJSONのメソッド

シーケンス・オブジェクトがある場合は toJSONのメソッドを、その後、toJSON メソッドは、オブジェクトではなく、代わりに、オブジェクト直列化のデフォルトの直列化の動作をオーバーライドし、呼び出しますtoJSON メソッドの戻り値がシリアライズされます

 

1つの VAR OBJ = {
 2      FOO: 'foo'で3      toJSON(){
 4          リターン 'バー'
 5      }
 6  }。
7にconsole.log(JSON.stringify(OBJ))。// "バー" 
8はconsole.log(JSON.stringify({X:OBJ}))// { "X": "バー"}

 

おすすめ

転載: www.cnblogs.com/hongding/p/11387796.html