本文將介紹javascript中如何將數(shù)據(jù)保存為json格式。對于前端開發(fā)人員,這是一項非常重要的技能,因?yàn)樗鼈兛梢詭椭覀冊诎l(fā)送數(shù)據(jù)到服務(wù)器時,讀取本地數(shù)據(jù)時等多個方面起到非常好的作用。接下來,我們將詳細(xì)討論如何將javascript數(shù)據(jù)對象轉(zhuǎn)換成json格式。
假設(shè)我們有這樣一個數(shù)據(jù)對象:
var people = { "name": "張三", "age": 20, "gender": "男", "address": { "province": "北京", "city": "北京市", "district": "海淀區(qū)" } }
我們可以使用JSON.stringify()方法將該對象轉(zhuǎn)換為json格式。如下所示:
var json = JSON.stringify(people); console.log(json); /* 輸出: { "name": "張三", "age": 20, "gender": "男", "address": { "province": "北京", "city": "北京市", "district": "海淀區(qū)" } } */
我們也可以在JSON.stringify()方法中定義一個replacer函數(shù)來為輸出的json格式添加過濾器,只輸出我們需要的數(shù)據(jù)。如下所示:
var json = JSON.stringify(people, ["name", "age"], 4); console.log(json); /* 輸出: { "name": "張三", "age": 20 } */
如果我們需要輸出的數(shù)據(jù)更為復(fù)雜,比如數(shù)組或字符串等,我們也可以使用JSON.stringify()方法。如下所示:
var data = ["蘋果", "梨子", "香蕉", "桔子"]; var json = JSON.stringify(data); console.log(json); /* 輸出: [ "蘋果", "梨子", "香蕉", "桔子" ] */
JSON.stringify()方法還有一個參數(shù),它是用來控制返回的縮進(jìn)格式。如下所示:
var json = JSON.stringify(data, null, 4); console.log(json); /* 輸出: [ "蘋果", "梨子", "香蕉", "桔子" ] */
在實(shí)際中,我們經(jīng)常需要將從服務(wù)器返回的json格式數(shù)據(jù)轉(zhuǎn)換成javascript對象。我們可以使用JSON.parse()方法來完成這項任務(wù),如下所示:
var json = '{ "name": "張三", "age": 20, "gender": "男" }'; var obj = JSON.parse(json); console.log(obj); /* 輸出: { "name": "張三", "age": 20, "gender": "男" } */
JSON.parse()方法也支持在第二個參數(shù)中定義reviver函數(shù),用來過濾一些不需要的數(shù)據(jù)。如下所示:
var json = '{ "name": "張三", "age": 20, "gender": "男", "address": { "province": "北京", "city": "北京市", "district": "海淀區(qū)" } }'; var obj = JSON.parse(json, function(key, value) { if(key=="address") return undefined; return value; }); console.log(obj); /* 輸出: { "name": "張三", "age": 20, "gender": "男" } */
以上就是javascript中如何將數(shù)據(jù)保存為json格式的全部內(nèi)容。我們通過使用JSON.stringify()方法將javascript對象轉(zhuǎn)換為json格式,并使用JSON.parse()方法將json格式數(shù)據(jù)轉(zhuǎn)換為javascript對象。這為我們的開發(fā)工作帶來了極大的便利。