json字符串和js对象之间相互转换

时间:2021-04-21 17:54:12

转自: 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对象