javascript中eval解析JSON字符串

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介:

先来看一个JSON字符串集

 

var data=" 

root: 

{name:'1',value:'0'}, 
{name:'6101',value:'A城市'}, 
{name:'6102',value:'B城市'}, 
{name:'6103',value:'C城市'}, 
{name:'6104',value:'D城市'}, 
{name:'6105',value:'E城市'}

]
}";

 

怎么将上述json字符串转化为json对象呢?


使用eval()这个内置函数,该方式也适合以普通js方式获取json对象。

 

var dataObj=eval("("+data+")");
alert(dataObj.root.length);
$.each(dataObj.root,fucntion(idx,item){ 
        if(idx==0){ 
              return true; 
        } 
       alert("name:"+item.name+",value:"+item.value); 
});


为什么eval这里要添加("("+data+")") ?

由于json是以{ }的方式来开始以及结束的,在eval中会被当成一个语句块来处理,故必须强制将它转换成一种表达式。

加上圆括号是使eval函数在处理时强制将括号内的表达式(expression)转化为对象而不作为语句(statement)来执行。

若不加外层的括号,eval会将大括号识别为js代码块的开始和结束标记,{ }将会被认为执行了一句空语句。

 

alert(eval("{}")
结果 undefined

 

alert(eval("({})")
结果 object[Object]


来看看eval其他用法

eval("alert('xy')");

等价于alert("xy")

 

var msg = "xy";

eval("alert(msg)");

等价于alert("xy")

 

eval("x=10;y=20;document.write(x*y)")

结果 200

 

eval就相当于一个js解析器,很牛哦

 

原帖地址:http://www.cnblogs.com/myjavawork/archive/2011/03/10/1979279.html

本文转自IT徐胖子的专栏博客51CTO博客,原文链接http://blog.51cto.com/woshixy/959630如需转载请自行联系原作者


woshixuye111

相关文章
|
1月前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
67 8
|
1月前
|
JavaScript 前端开发
JS几种拼接字符串的方法
JS几种拼接字符串的方法
51 1
|
1月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
43 3
|
2月前
|
JavaScript 前端开发
javascript创建字符串
javascript创建字符串
|
2月前
|
JavaScript 前端开发
如何在JavaScript中替换字符串:一篇详细指南
如何在JavaScript中替换字符串:一篇详细指南
|
2月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
228 2
|
2月前
|
存储 JavaScript
js切割截取字符串方法
js切割截取字符串方法
49 2
|
1月前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
2月前
|
JavaScript 前端开发 C++
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
JavaScript用indexOf()在字符串数组中查找子串时需要注意的一个地方
|
2月前
|
C++
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具
HTML+JavaScript构建一个将C/C++定义的ANSI字符串转换为MASM32定义的DWUniCode字符串的工具

推荐镜像

更多
下一篇
无影云桌面