解析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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM