現在JSON格式在web開發中越來越受重視,特別是在使用ajax開發項目的過程中,經常需要將json格式的字元串返回到前端,前端解析成JS對象(JSON ),ECMA-262(E3)中沒有將JSON概念寫到標準中,還好在 ECMA-262(E5)中JSON的概念被正式引入了,包括全局的JSON對象和... ...
在很多時候,我們的需要將類似 json 格式的字元串數據轉為json,
下麵將介紹日常中使用的三種解析json字元串的方法
1.首先,我們先看一下什麼是 json 格式字元串數據,很簡單,就是 json 字元串化,在json 最外加單/雙號變為字元串數據
1 var str='{"name":"Mike","sex":"女","age":"29"}'; 2 var t2="[{name:'lisi',age:'30'},{name:'wangwu',age:'16'},{name:'tianqi',age:'7'}] ";
2.我們用Object.prototype.toString.call() 來檢測數據類型
1 console.log(Object.prototype.toString.call(str));//[object String] 2 console.log(Object.prototype.toString.call(t2));//[object String]
第一種方法:evel();
特點:安全性底,不建議使用,單個JSON對象時要加括弧,JSON數組就不需要了
示例:
var evajson =eval('('+str+')'); var evajsarr = eval(t2);
轉換後,再使用Object.prototype.toString.call() 來檢測轉換後的數據類型
1 console.log(Object.prototype.toString.call(evajso))//[object Object] 2 console.log(Object.prototype.toString.call(evajsarr))//[object Array]
第二種:new Function()
註意:函數要有返回,所以要加“return”;
示例:
1 var fnjson = new Function("return"+str)(); 2 var fnjsonArr = new Function("return"+t2)();
轉換後,再使用Object.prototype.toString.call() 來檢測轉換後的數據類型
1 console.log(Object.prototype.toString.call(fnjson ))//[object Object] 2 console.log(Object.prototype.toString.call(fnjsonArr ))//[object Array]
第二種:JSON.parse()
特點:主流,相容性好,推薦
示例:
1 var parjson = JSON.parse(str); 2 var parjson = JSON.parse(t2);
檢測轉後的數據類型
1 console.log(Object.prototype.toString.call(parjson ))//[object Object] 2 console.log(Object.prototype.toString.call(parjson ))//[object Array]
完結,謝謝。。。
參考:https://www.w3cschool.cn/json/8kjw1pl0.html