JSON與對象的相互轉換


json是一種輕量級的數據格式,(本質為字符串)

低版本可以使用json2.js插件來解決。下載地址:https://github.com/douglascrockford/JSON-js

JSON語法:數據在名稱/值對中、數據由逗號分隔、花括號保存對象、方括號保存數組

'{"name":"小明","age":18}'
'["name":"小明","age",18]'

把JSON格式轉成對象:JSON.parse()

注意:

  • JSON格式必須為標准的JSON格式
  • key值必須是雙引號(單引號會報錯)
  • value如果是字符串也要加雙引號
 let json = '[{"name":"小明","age":18},{"name":"小花","age":16}]';  
 json = JSON.parse(json);
 console.log(json);

 

把對象轉成標准json:JSON.stringify()

let obj = {name:'小明','age':18,a:function(){},b:true};
console.log(JSON.stringify(obj));//{"name":"小明","age":18,"b":true}

注:轉不了undefined和函數(即使轉了也不會顯示)

 

eval():能夠把字符串盡量轉成js運行的代碼

小技巧 - > 在使用eval傳化json的時候,json用字符串括號包一下 eval('('+json+')')

eval是不安全的(可能會注入不必要的東西),通過new Function('','return'+json)();可以解決該問題

 let json = "{'name':'蜘蛛俠'}";
 // console.log(JSON.parse(json));
 // console.log(eval('('+ json +')'));
 // console.log(new Function('a,b','return a+b')(1,2));
 console.log(new Function('','return'+json)());

 


免責聲明!

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



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