文档章节

eval函数解析JSON 数据出错

火龙战士
 火龙战士
发布于 2015/03/27 16:05
字数 291
阅读 283
收藏 9
点赞 0
评论 0

描述:使用eval函数解析JSON数据出错报

这个错误。

经使用debug测试才发现是我语法有问题:

没有解决前代码:

var ArrayData = eval(data);

解决后代码:

var JsonData = eval('('+data+')');

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

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对象字面量{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结束标记,那么{}将会被认为是执行了一句空语句。所以下面两个执行结果是不同的:
alert(eval("{}"); // return undefined
alert(eval("({})");// return object[Object]

© 著作权归作者所有

共有 人打赏支持
火龙战士

火龙战士

粉丝 106
博文 128
码字总数 98447
作品 0
北京
后端工程师
JSON 浅谈 — 3.0 解析

解析,是指将符合 JSON 语法规则的字符串转换成对象的过程。 不同的编程语言都提供了解析 JSON 字符串的方法,在这里主要讲解 JavaScript 中的解析方法。主要有三种: 使用 eval() 使用 JSON...

柠檬酷
2015/09/06
27
0
js中eval详解,用Js的eval解析JSON中的注意点

eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句。如果s语句执行结果是一个值,则返回此值,否则返回undefined。 需要特别注意的是对象声明语法“{}”并不能返回一个值...

一坨翔
06/27
0
0
javascript eval和JSON之间的联系

如果您想详细了解eval和JSON请参考以下链接: eval :https://developer.mozilla.org/En/CoreJavaScript1.5Reference/GlobalFunctions/Eval JSON:http://www.json.org/ eval函数的工作原理 ......

C_Liwang
2014/03/28
0
0
eval解析JSON中的注意点有哪些

 eval解析JSON中的注意点   在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式:   1.一种为使用eval()函数。   2. 使用Function对象来进行返回解析。   使用eval函数来解析...

袁立宏
2012/10/17
0
0
JavaScript中的 JSON

JavaScript这种编程语言首要 的目的是为Netscape Navigator提供一种页面脚本语言。它仍被普遍的认为是Java 的一个子集,但事实并非如此。它是一种语法类似c语言并且支持面向对象的Scheme-li...

红薯
2010/04/21
827
1
JSON进阶第一篇 在PHP与javascript 中使用JSON

一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家...

晨曦之光
2012/02/22
0
0
stringify、parse、param、eval、serialize、serializeArray的一些使用方法

测试代码: 1)JSON.parse() 将 JSON 字符串转换成对象: 2)eval() 和 JSON.parse()一样都是json的的解析方法,把json字符串解析为一个object对象 两者区别: eval()和JSON.parse() 的区别: ev...

文文1
05/04
0
0
JSON进阶第一篇 在PHP与javascript 中使用JSON

一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家...

长平狐
2012/12/10
53
0
JSON进阶第一篇 在PHP与javascript 中使用JSON

一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家...

晨曦之光
2012/05/21
71
0
JSON进阶第一篇 在PHP与javascript 中使用JSON

一.JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家...

彭博
2012/04/12
96
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

实现异步有哪些方法

有哪些方法可以实现异步呢? 方式一:java 线程池 示例: @Test public final void test_ThreadPool() throws InterruptedException { ScheduledThreadPoolExecutor scheduledThre......

黄威
35分钟前
0
0
linux服务器修改mtu值优化cpu

一、jumbo frames 相关 1、什么是jumbo frames Jumbo frames 是指比标准Ethernet Frames长的frame,即比1518/1522 bit大的frames,Jumbo frame的大小是每个设备厂商规定的,不属于IEEE标准;...

六库科技
今天
0
0
牛客网刷题

1. 二维数组中的查找(难度:易) 题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入...

大不了敲一辈子代码
今天
0
0
linux系统的任务计划、服务管理

linux任务计划cron 在linux下,有时候要在我们不在的时候执行一项命令,或启动一个脚本,可以使用任务计划cron功能。 任务计划要用crontab命令完成 选项: -u 指定某个用户,不加-u表示当前用...

黄昏残影
昨天
0
0
设计模式:单例模式

单例模式的定义是确保某个类在任何情况下都只有一个实例,并且需要提供一个全局的访问点供调用者访问该实例的一种模式。 实现以上模式基于以下必须遵守的两点: 1.构造方法私有化 2.提供一个...

人觉非常君
昨天
0
0
《Linux Perf Master》Edition 0.4 发布

在线阅读:https://riboseyim.gitbook.io/perf 在线阅读:https://www.gitbook.com/book/riboseyim/linux-perf-master/details 百度网盘【pdf、mobi、ePub】:https://pan.baidu.com/s/1C20T......

RiboseYim
昨天
1
0
conda 换源

https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/ conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mir......

阿豪boy
昨天
1
0
Confluence 6 安装补丁类文件

Atlassian 支持或者 Atlassian 缺陷修复小组可能针对有一些关键问题会提供补丁来解决这些问题,但是这些问题还没有放到下一个更新版本中。这些问题将会使用 Class 类文件同时在官方 Jira bug...

honeymose
昨天
0
0
非常实用的IDEA插件之总结

1、Alibaba Java Coding Guidelines 经过247天的持续研发,阿里巴巴于10月14日在杭州云栖大会上,正式发布众所期待的《阿里巴巴Java开发规约》扫描插件!该插件由阿里巴巴P3C项目组研发。P3C...

Gibbons
昨天
1
0
Tomcat介绍,安装jdk,安装tomcat,配置Tomcat监听80端口

Tomcat介绍 Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 java程序写的网站用tomcat+jdk来运行...

TaoXu
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部