JSON.stringify()

3352 ワード

概要JSON.stringify() 方法は、任意のJavaScript値をJSON文字列に順序付けすることができる.
構文
JSON.stringify(value[, replacer [, space]])
パラメータvalueJSON文字列の値に順番に並べます.replacer 
オプション
パラメータが関数である場合、プログレッシブプロセスにおいて、プログレッシブされた値の各属性は、関数の変換と処理を経ます.このパラメータが配列である場合、この配列に含まれる属性名だけが最終的なJSON文字列にプログレッシブされます.このパラメータのより詳細な説明と例については、元のJSONオブジェクトを使用した文を参照してください.space 
オプション
インデント用の空白文字列を指定して、出力を美化します.
 具体的にはMDNを参照することができます.https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Object/JSON/stringify
 
一、通常は以下のコードを使って簡単なJSON文字列化を行います.
var JSONobj = {"name" : "value","arr" : ['str1','str2']};
console.log(JSON.stringify(JSONobj));
//   {"name":"value","arr":["str1","str2"]} 
 
二、実際には、二番目のパラメータも、対象内のkey-valueを順次処理して文字列に変換するなど、重要な用途があります.
var JSONobj = {"name" : "value","name2":"value2","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj,function(key,value){
   console.log(key,value)
});    
//   :JSONobj  (value ),key  
 
三、展示が必要なjson列はユーザーに友好的で、可読性を高める時、第三のパラメータを使用できます.
var JSONobj = {"name" : "value","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj, null, '\t');
/* "{
    "name": "value",
    "arr": [
        "str1",
        "str2",
        {
            "arrObj": "arrObj"
        }
    ]
}" */
実際上の結果は二回処理されました.
1.「{%、'}、value後の'、'の末尾に一つを追加します.
2.各1段階のkeyの前に\t(tabタブ、すなわち、本例では3番目のパラメータ値)を追加し、2段階のkeyの前に2つの\tを追加し、これを類推する.
以上の2点をより明確に検証するために、次のテストを行います.
var JSONobj = {"name" : "value","arr" : ['str1','str2',{'arrObj' : 'arrObj'}]};
JSON.stringify(JSONobj, null, '\t').replace(/
/g,'|--N--|').replace(/\t/g,'|--T--|'); // "{|--N--||--T--|"name": "value",|--N--||--T--|"arr": [|--N--||--T--||--T--|"str1",|--N--||--T--||--T--|"str2",|--N--||--T--||--T--|{|--N--||--T--||--T--||--T--|"arrObj": "arrObj"|--N--||--T--||--T--|}|--N--||--T--|]|--N--|}"