转自: http://blog.csdn.net/itlyng/article/details/55804059
一、json字符串转js对象
在实际项目开发过程中,json经常应用到的场景是:在后台应用程序中将响应数据封装成json格式,传到前台页面之后,需要将json格式转换为javascript对象,然后在网页中使用该数据
那么,如何将json格式的数据转换为javascript对象:
以下有两种解决方案: (推荐使用第一种方案)
1.利用json解析器(JSON.parse(str))的方式,这种方式更安全,现在主流的,较新的浏览器中都包含了json解析器,
- <script>
- var txt = '{ "info" : [' +
- '{ "name":"张三" , "sex":"男" },' +
- '{ "name":"李四" , "sex":"男" },' +
- '{ "name":"赵五" , "sex":"男" } ]}';
- obj = JSON.parse(txt);
- document.getElementById("name").innerHTML=obj.info[0].name
- document.getElementById("sex").innerHTML=obj.info[0].sex
- </script>
2.利用传统的eval函数转换:这个方式有潜在的不安全性,
eval函数利用的是JavaScript的编译器原理,为了保证语法解析正确,需要将文本包围在括号中,
- <script>
- var txt = '{ "info" : [' +
- '{ "name":"张三" , "sex":"男" },' +
- '{ "name":"李四" , "sex":"男" },' +
- '{ "name":"赵五" , "sex":"男" } ]}';
- var obj = eval ("(" + txt + ")");
- document.getElementById("name").innerHTML=obj.info[0].name
- document.getElementById("sex").innerHTML=obj.info[0].sex
- </script>
综上所述,推荐使用第一种方案,即用JSON.parse(str)的方式将json文本转换为JavaScript对象