json字串和js物件之間相互轉換

hemeinvyiqiluoben發表於2018-02-24

轉自: http://blog.csdn.net/itlyng/article/details/55804059


一、json字串轉js物件

在實際專案開發過程中,json經常應用到的場景是:在後臺應用程式中將響應資料封裝成json格式,傳到前臺頁面之後,需要將json格式轉換為javascript物件,然後在網頁中使用該資料

那麼,如何將json格式的資料轉換為javascript物件:

以下有兩種解決方案:   推薦使用第一種方案

1.利用json解析器(JSON.parse(str))的方式,這種方式更安全,現在主流的,較新的瀏覽器中都包含了json解析器,

  1. <script>  
  2. var txt = '{ "info" : [' +  
  3. '{ "name":"張三" , "sex":"男" },' +  
  4. '{ "name":"李四" , "sex":"男" },' +  
  5. '{ "name":"趙五" , "sex":"男" } ]}';  
  6.   
  7.   
  8. obj = JSON.parse(txt);  
  9.   
  10. document.getElementById("name").innerHTML=obj.info[0].name   
  11. document.getElementById("sex").innerHTML=obj.info[0].sex   
  12. </script> 

2.利用傳統的eval函式轉換:這個方式有潛在的不安全性,

eval函式利用的是JavaScript的編譯器原理,為了保證語法解析正確,需要將文字包圍在括號中,

  1. <script>  
  2. var txt = '{ "info" : [' +  
  3. '{ "name":"張三" , "sex":"男" },' +  
  4. '{ "name":"李四" , "sex":"男" },' +  
  5. '{ "name":"趙五" , "sex":"男" } ]}';  
  6.   
  7. var obj = eval ("(" + txt + ")");  
  8.   
  9. document.getElementById("name").innerHTML=obj.info[0].name   
  10. document.getElementById("sex").innerHTML=obj.info[0].sex   
  11. </script>  
 

綜上所述,推薦使用第一種方案,即用JSON.parse(str)的方式將json文字轉換為JavaScript物件



相關文章