json格式的字串序列化和反序列化的一些高階用法

i042416發表於2020-03-15

(1) 僅僅將指定屬性對應的值序列化成字串:

var filter = {name: 'Jerry', sex: 'male', age: '10'};
var jsonStr4 = JSON.stringify(filter, ['name']);
console.log(jsonStr4);

想參與序列化的引數名透過JSON.stringify方法的第二個引數傳入。

上面例子中,只有name欄位及對應的值參與了序列化,輸出如下:

json格式的字串序列化和反序列化的一些高階用法

(2) 序列化時,還可以編寫函式,實現自定義序列化邏輯:

var obj = {name: 'Jerry', sex: 'male', age: '40'};
var jsonStr5 = JSON.stringify(obj, function(key, value) {
  if(key === 'name') {
    return 'my name is: ' + value;
  }
  else if( key === 'sex'){
  		// do not return, discard this attribute
  }
  else
  	return value;
});

輸出:

json格式的字串序列化和反序列化的一些高階用法

name屬性的值透過自定義函式實現,前面加上了字首。sex屬性被丟棄,age屬性保持不變。

(3) 序列化時增加縮排,讓輸出的字串更便於閱讀

var obj6 = {name: 'Jerry', sex: 'male', age: '40'};
var jsonStr6 = JSON.stringify(obj6, null, 5);
console.log(jsonStr6);

輸出:

json格式的字串序列化和反序列化的一些高階用法


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2680361/,如需轉載,請註明出處,否則將追究法律責任。

相關文章