JSON.stringify 的使用

天午正陽發表於2020-10-08

一、作用:這個函式的作用主要是為了序列化物件。就是把原來是物件的型別轉換成字串型別(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);

結果:

 

相關文章