JS中eval解析字符串为json格式
来源:互联网 发布:cnc电脑编程软件有哪些 编辑:程序博客网 时间:2024/04/30 13:36
由于 Ajax 的兴起, JSON 这种轻量级的数据格式作为客户端与服务器端之间传输的格式逐渐流行起来,进而出现的问题是如何将服务器端构建好的 JSON 数据转换为可用的 JavaScript 对象,利用 eval 函数无疑是一种简单而直接的方法。在转化的时候需要将 JSON 字符串的外面包装一层园括号:
var jsonObject = eval("("+ jsonFormat +")")
加园括号的目的是迫使 eval 函数在评估 JavaScript 代码的时候强制将括号内的表达式(expression)转换为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不佳加外层的括号,那么eval会将大括号之别为JavaScript代码块的开始结束标记机,那么{}将被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}")); //return undefined
alert(eval("({})")); //return [object Object]
//eval 错误解析语义
alert(eval('{foo:"bar"}')); //return "bar",incorrect
//eval 正确解析JSON
alert(eval('({"foo":"bar"})'));//return JSON object,correct
var jsonObject = eval("("+ jsonFormat +")")
加园括号的目的是迫使 eval 函数在评估 JavaScript 代码的时候强制将括号内的表达式(expression)转换为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不佳加外层的括号,那么eval会将大括号之别为JavaScript代码块的开始结束标记机,那么{}将被认为是执行了一句空语句。所以下面两个执行结果是不同的:
复制代码代码如下:
alert(eval("{}")); //return undefined
alert(eval("({})")); //return [object Object]
JSON 格式的名字部分为什么要加引号?因为eval函数会将{foo:"bar"}解释成合法的JavaScript 语句,而非表达式。但人们往往是想让eval将这段代码解释成一个对象。所以JSON 格式会强制你去在名字的外侧加上引号,再结合圆括号,eval就不会错误的将JSON解释成代码块。
复制代码代码如下:
//eval 错误解析语义
alert(eval('{foo:"bar"}')); //return "bar",incorrect
//eval 正确解析JSON
alert(eval('({"foo":"bar"})'));//return JSON object,correct
- JS中eval解析字符串为json格式
- js中解析字符串-eval()和JSON()
- eval将数据解析为Json格式
- ajax+php中出现需要使用eval函数将json中字符串解析成json格式
- javascript中eval解析JSON字符串
- javascript中eval解析JSON字符串
- javascript中eval解析JSON字符串
- javascript中eval解析JSON字符串
- js操作cookie,将字符串数据解析为json格式
- eval解析json字符串
- 解析json字符串:eval
- Js中把JSON字符串转换为JSON对象(eval()、new Function())
- js eval 解析json
- JSON是什么-javascript eval解析json字符串为对象
- 使用eval()解析JSON格式字符串应注意的问题
- 使用eval()解析JSON格式字符串应注意的问题
- js使用eval解析json(js中使用json)
- JS的eval函数解析JSON格式数据
- 一段比较经典的从命令行获得设置参数的语句
- 测试网卡流量脚本
- ArcGIS API for Javascript 2.X 离线部署(以2.6为例)
- Hibernate连接Oracle数据库的 Hibernate.cfg.xml
- Linux虚拟机开启共享文件夹
- JS中eval解析字符串为json格式
- 查看linux内核(kernel)的方法
- mysql创建函数问题
- Ubuntu下minicom配置 串口工具
- js写txt文件及js数组的有关操作
- 在Android的c/c++代码中使用LOG
- Java操作Hbase进行建表、删表以及对数据进行增删改查,条件查询
- (转)搭建Mantis 缺陷管理系统
- 什么是开源软件(Open source software)