javascript中eval解析JSON字符串

简介:

先来看一个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

相关文章
|
JavaScript 前端开发 数据处理
模板字符串和普通字符串在浏览器和 Node.js 中的性能表现是否一致?
综上所述,模板字符串和普通字符串在浏览器和 Node.js 中的性能表现既有相似之处,也有不同之处。在实际应用中,需要根据具体的场景和性能需求来选择使用哪种字符串处理方式,以达到最佳的性能和开发效率。
509 63
|
数据采集 前端开发 JavaScript
金融数据分析:解析JavaScript渲染的隐藏表格
本文详解了如何使用Python与Selenium结合代理IP技术,从金融网站(如东方财富网)抓取由JavaScript渲染的隐藏表格数据。内容涵盖环境搭建、代理配置、模拟用户行为、数据解析与分析等关键步骤。通过设置Cookie和User-Agent,突破反爬机制;借助Selenium等待页面渲染,精准定位动态数据。同时,提供了常见错误解决方案及延伸练习,帮助读者掌握金融数据采集的核心技能,为投资决策提供支持。注意规避动态加载、代理验证及元素定位等潜在陷阱,确保数据抓取高效稳定。
687 17
|
存储 前端开发 JavaScript
JavaScript垃圾回收机制深度解析
【10月更文挑战第21】JavaScript垃圾回收机制深度解析
421 59
|
存储 JavaScript 前端开发
全网最全情景,深入浅出解析JavaScript数组去重:数值与引用类型的全面攻略
如果是基础类型数组,优先选择 Set。 对于引用类型数组,根据需求选择 Map 或 JSON.stringify()。 其余情况根据实际需求进行混合调用,就能更好的实现数组去重。 只有锻炼思维才能可持续地解决问题,只有思维才是真正值得学习和分享的核心要素。如果这篇博客能给您带来一点帮助,麻烦您点个赞支持一下,还可以收藏起来以备不时之需,有疑问和错误欢迎在评论区指出~
|
JavaScript 前端开发 开发者
JavaScript字符串的常用方法
在JavaScript中,字符串处理是一个非常常见的任务。JavaScript提供了丰富的字符串操作方法,使开发者能够高效地处理和操作字符串。本文将详细介绍JavaScript字符串的常用方法,并提供示例代码以便更好地理解和应用这些方法。
417 13
|
JavaScript 前端开发 索引
JavaScript学习第二章--字符串
本文介绍了JavaScript中的字符串处理,包括普通字符串和模板字符串的使用方法及常见字符串操作方法如`charAt`、`concat`、`endsWith`等,适合前端学习者参考。作者是一位热爱前端技术的大一学生,专注于分享实用的编程技巧。
275 2
|
JavaScript 前端开发 索引
JavaScript ES6及后续版本:新增的常用特性与亮点解析
JavaScript ES6及后续版本:新增的常用特性与亮点解析
694 4
|
前端开发 JavaScript
JavaScript新纪元:ES6+特性深度解析与实战应用
【10月更文挑战第29天】本文深入解析ES6+的核心特性,包括箭头函数、模板字符串、解构赋值、Promise、模块化和类等,结合实战应用,展示如何利用这些新特性编写更加高效和优雅的代码。
557 0
|
JavaScript 前端开发 开发者
原型链深入解析:JavaScript中的核心机制
【10月更文挑战第13天】原型链深入解析:JavaScript中的核心机制
659 0
|
前端开发 JavaScript UED
JavaScript异步编程深入解析
【10月更文挑战第8天】JavaScript异步编程深入解析
320 0

热门文章

最新文章

推荐镜像

更多
  • DNS