在es6中,我們可以用JSON.stringify()方法將一個javascript對象轉換成一個JSON格式的字符串。
let obj = {name: "小明", age: 18};
let str = JSON.stringify(obj);
console.log(str);
//輸出結果為:{"name":"小明","age":18}
我們也可以對被轉換的對象進行一些常用的操作:
let obj = {name: "小明", hobbies: ["reading", "playing"], address: {province: "北京", city: "豐臺區"}};
let str = JSON.stringify(obj, ['name', 'hobbies']);
console.log(str);
//輸出結果為:{"name":"小明","hobbies":["reading","playing"]}
let str_2 = JSON.stringify(obj, (key, value) => {
if(key === "province") {
return undefined;
}
return value;
});
console.log(str_2);
//輸出結果為:{"name":"小明","hobbies":["reading","playing"],"address":{"city":"豐臺區"}}
在JSON.stringify()方法中,第二個參數可以是一個數組或一個函數。當為數組時,只會序列化數組中列出的屬性。當為函數時,可以對屬性進行自定義過濾和修改。
let obj = {name: "小明", age: 18};
let str = JSON.stringify(obj, null, 2);
console.log(str);
/* 輸出結果為:
{
"name": "小明",
"age": 18
} */
第三個參數是可選的,用于設置JSON字符串的縮進。縮進可以使JSON字符串更易于閱讀。
使用JSON.parse()來將一個JSON格式的字符串轉換為javascript對象:
let str = '{"name":"小明","age":18}';
let obj = JSON.parse(str);
console.log(obj.name);
//輸出結果為:"小明"
需要注意的是,JSON.parse()將JSON字符串轉換為一個對象。如果JSON字符串中包含函數、日期等特殊數據類型,則需要使用特殊的解析工具。
上一篇vue后臺模塊設置
下一篇python 最快序列化