JSON物件和字串之間的相互轉換
所有現代瀏覽器都支援 JSON 物件,有兩個非常有用的方法來處理 JSON 格式的內容:
JSON.parse(string) :接受一個 JSON 字串並將其轉換成一個 JavaScript 物件。
JSON.stringify(obj) :接受一個 JavaScript 物件並將其轉換為一個 JSON 字串。
比如我有兩個變數,我要將a轉換成字串,將b轉換成JSON物件:
var a={"name":"tom","sex":"男","age":"18"};
var b='{"name":"Mike","sex":"女","age":"18"}';
在Firefox,chrome,opera,safari,ie9,ie8等高階瀏覽器直接可以用JSON物件的stringify()和parse()方法。
JSON.stringify(obj)將JSON轉為字串。
JSON.parse(string)將字串轉為JSON格式;
上面的轉換可以這麼寫:
var a={"name":"tom","sex":"男","age":"18"};
var b='{"name":"Mike","sex":"女","age":"18"}';
var aToStr=JSON.stringify(a);
var bToObj=JSON.parse(b);
console.log(typeof(aToStr)); //string
console.log(typeof(bToObj));//object
這些方法通常用在物件上,但它們也可以在陣列上使用:
const myArr = ['bacon', 'letuce', 'tomatoes'];
const myArrStr = JSON.stringify(myArr);
console.log(myArrStr);
// "["bacon","letuce","tomatoes"]"
console.log(JSON.parse(myArrStr));
// ["bacon","letuce","tomatoes"]
ie8(相容模式),ie7和ie6沒有JSON物件,不過我提供了一個json.js,這樣ie8(相容模式),ie7和ie6就可以支援JSON物件以及其stringify()和parse()方法;你可以上
ie8(相容模式),ie7和ie6可以使用eval()將字串轉為JSON物件,
var c='{"name":"Mike","sex":"女","age":"18"}';
var cToObj=eval("("+c+")");
console.log(typeof(cToObj));
jQuery中也有將字串轉為JSON格式的方法jQuery.parseJSON( json ),接受一個標準格式的 JSON 字串,並返回解析後的 JavaScript (JSON)物件。當然如果有興趣可以自己封裝一個jQuery擴充套件,jQuery.stringifyJSON(obj)將JSON轉為字串。
JSON.parse() 和 JSON.stringify() 的高階用法,可以將返回值過濾,轉換等
本次給大家推薦一個免費的學習群,裡面概括移動應用網站開發,css,html,webpack,vue node angular以及面試資源等。
對web開發技術感興趣的同學,歡迎加入Q群:864305860,不管你是小白還是大牛我都歡迎,還有大牛整理的一套高效率學習路線和教程與您免費分享,同時每天更新視訊資料。
最後,祝大家早日學有所成,拿到滿意offer,快速升職加薪,走上人生巔峰。