一、作用:這個函式的作用主要是為了序列化物件。就是把原來是物件的型別轉換成字串型別(json格式的String型別)。
二、語法:JSON.stringify(value[, replacer][, space])
value:必須要的欄位。傳入的物件,如陣列,類等。
replacer:可選欄位。兩種方式,一是方法,二是陣列。
情況一,傳入的是陣列。以第二個陣列的值為key,第一個陣列為value進行序列化,如果不存在就忽略。
情況二,傳入的是方法。把序列化後的每一個物件傳進方法裡面進行處理。
space:分隔符。
1、如果省略,那顯示出來的值就沒有分隔符,直接輸出。
2、如果是一個數字,那它就定義縮排幾個字元,如果大於10,則最大值為10。
3、如果是一些轉義字元,比如“\t”,表示回車,那它每行一個回車。
4、如果是字串,那每行輸出組把該字串附加上去,最大長度也是10個字元。
三、例項:
1、只有一個引數,即只傳入引數value
var text = {}; text.id = 1; text.name = "fang";
var json = JSON.stringify(text);
alert(text + " | " + json); |
結果:
2、第二個引數存在,傳入的值是function時
function upperCase(key, value) { return value.toString().toUpperCase(); }
var text = new Array(); text[0] = "abc"; text[1] = "defg";
var json = JSON.stringify(text, upperCase);
alert(text + " | " + json); |
結果:
3、第二個引數存在,並且為陣列
3.1、進行序列化的物件是陣列,那忽略第二個引數,直接進行序列化
var text = new Array(); text[0] = "abc"; text[1] = "defg";
var text2 = new Array(); text2[0] = "1"; text2[1] = "2";
var json = JSON.stringify(text, text2);
alert(text + " | " + json); |
結果:
3.2、第一個引數不是陣列物件,第二個是陣列,如果第二個陣列的value在第一個存在,那就以第二個的值為key,第一個值為value進行表示
var text = new Object(); text.id = 1; text.name = "fxr"; text.sex = "male";
var array = new Array(); array[0] = "id"; array[1] = "name"; array[2] = "age"; // 第一個物件中不存在該屬性
var json = JSON.stringify(text, array);
alert(text + " | " + json); |
結果:array[2] = “age” 這個在第一個中找不到,就不顯示。
4、第三個引數存在
4.1、引數為數字:定義縮排幾個字元,最大值為10
var text = new Object(); text.id = 1; text.name = "fxr"; text.sex = "male";
var array = new Array(); array[0] = "id"; array[1] = "name"; array[2] = "age"; // 第一個物件中不存在該屬性
// 縮排20個字元,但是最大值為10,縮排10個字元 var json = JSON.stringify(text, array, 20);
alert(text + " | " + json); |
結果:
4.2、引數為轉義字元:比如“\t”,表示回車,那每一行一個回車
var text = new Object(); text.id = 1; text.name = "fxr"; text.sex = "male";
var array = new Array(); array[0] = "id"; array[1] = "name"; array[2] = "age"; // 第一個物件中不存在該屬性
// 換行 var json = JSON.stringify(text, array, "\t");
alert(text + " | " + json); |
結果:
4.3、引數為字串,則附加上去,最大長度為10個字元
var text = new Object(); text.id = 1; text.name = "fxr"; text.sex = "male";
var array = new Array(); array[0] = "id"; array[1] = "name"; array[2] = "age"; // 第一個物件中不存在該屬性
// 字串 var json = JSON.stringify(text, array, "新增");
alert(text + " | " + json); |
結果: