atitit.解决SyntaxError: missing ] after element list"不个object  挡成个str eval ....

1. 原因::: 不个object  挡成个str eval .....
1

2. eval(string) 1

2.1.1. 返回值 1

2.1.2. 说明 2

3. eval和JSON 为什么要加括号? 2

4. JSON格式的名字部分为什么要加引号?
3

5. Json的历史 3

6. 参考 3

这个只是ff错误,ie不错误..

1. 原因::: 不个object  挡成个str eval .....

别的可能原因::应该是缺少引号。

错误原因是在引用几个js插件的时候 文件冲突, 引用先后问题的原因..

通常出现在

执行到代码var json = eval("("+data+")");的是时候抛出如下的错误,

作者:: 老哇的爪子 Attilax 艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.csdn.net/attilax

2. eval(string)

参数

描述

string

必需。要计算的字符串,其中含有要计算的 JavaScript 表达式或要执行的语句。

2.1.1. 返回值

通过计算 string 得到的值(如果有的话)。

2.1.2. 说明

该方法只接受原始字符串作为参数,如果 string 参数不是原始字符串,那么该方法将不作任何改变地返回。因此请不要为 eval() 函数传递 String 对象来作为参数。eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值。

不过实际上,ff的处理有问题了..不兼容....还是ie处理的好...

由于Ajax的兴起,JSON这种轻量级的数据格式作为客户端与服务器之间的传输格式逐渐地流行起来,进而出现的问题是如何将服务器端构建好的JSON数据转化为可用的JavaScript对象。利用eval函数无疑是一种简单而直接的方法。在转化的时候需要将JSON字符串的外面包装一层圆括号:

var jsonObject = eval("(" + jsonFormat + ")");

3. eval和JSON 为什么要加括号?

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

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

alert(eval("{}"); // return undefined

alert(eval("({})");// return object[Object]

4. 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

5. Json的历史

然而另一方面,JSON是Douglas Crockford在2001年开始推广使用的数据格式,在2005年-2006年正式成为主流的数据格式,雅虎和谷歌就在那时候开始广泛地使用JSON格式。

6. 参考

js 提示 missing ] after element list-CSDN论坛-CSDN.NET-中国最大的IT技术社区.htm

javascript eval和JSON之间的联系_javascript技巧_脚本之家.htm

数据格式的历史与对比:JSON vs XML - 51CTO.COM.htm

atitit.解决SyntaxError: missing ] after element list"不个object 挡成个str eval ....的更多相关文章

  1. SyntaxError: missing ] after element list 火狐问题

    关于火狐运行var obj = eval('(' + data + ')');时 报SyntaxError: missing ] after element list错误,Chrome和IE正常 情形 ...

  2. jQuery Ajax请求(关于火狐下SyntaxError: missing ] after element list ajax返回json,var json = eval("("+data+")"); 报错)

    $.ajax({    contentType: "application/x-www-form-urlencoded;charset=UTF-8" ,    type: &quo ...

  3. SyntaxError: missing ] after element list

    在前端页面js报错,找了很久没找到原因. 后来发现是后台向前端输出json字符串,而前端接收是html格式,需要将后台json字符串改成正常字符串就可以输出,或者通过ajax的方式接收json字符串.

  4. SyntaxError: missing ; before statement 错误的解决

    今天jsp页面中报错:SyntaxError: missing ; before statement 简单的理解是语法错误,F12调试之后发现原来是我定义的一个js中的全局变量的问题. <scr ...

  5. 解决前端开发报错(SyntaxError: missing : after property id)的问题

    当使用对象初始化语法创建对象的时候,需要使用半角冒号 (:) 将属性键与属性值隔开. 1 var obj = { propertyKey: 'value' }; 冒号与等号 下面的代码会运行失败,原因 ...

  6. SyntaxError: missing ; before statement

    做分页功能,遇到了很坑的事情.前台一直报错:SyntaxError: missing ; before statement 最后发现解决办法是eval("("+s+")& ...

  7. Atitit 解决Unhandled event loop exception错误的办法

    Atitit 解决Unhandled event loop exception错误的办法 查看workspace/.metadata/.log org.eclipse.swt.SWTError: No ...

  8. atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy

    atitit.解决net.sf.json.JSONException There is a cycle in the hierarchy 1. 环境:使用hibernate4跟个,,要不个哪的对象系列 ...

  9. atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException

    atitit.解决struts2 SpringObjectFactory.getClassInstance NullPointerException #--现象 java.lang.NullPoint ...

随机推荐

  1. linuxShell检测内网中存活主机,windows下net view/nmblookup

    #!/bin/bash # Simple SHELL script for Linux and UNIX system monitoring with # ping command # code by ...

  2. flush清空输入输出流

    #include <string.h> #include <stdio.h> #include <conio.h> #include <io.h> vo ...

  3. poj 3258 River Hopscotch 题解

    [题意] 牛要到河对岸,在与河岸垂直的一条线上,河中有N块石头,给定河岸宽度L,以及每一块石头离牛所在河岸的距离, 现在去掉M块石头,要求去掉M块石头后,剩下的石头之间以及石头与河岸的最小距离的最大值 ...

  4. C语言宏定义和宏定义函数

    要写好C语言,漂亮的宏定义是非常重要的.宏定义可以帮助我们防止出错,提高代码的可移植性和可读性等. 在软件开发过程中,经常有一些常用或者通用的功能或者代码段,这些功能既可以写成函数,也可以封装成为宏定 ...

  5. 谷歌浏览器开发调试工具中Sources面板 js调试等 完全介绍

    这次分享的是Chrome开发工具中最有用的面板Sources. Sources面板几乎是我最常用到的Chrome功能面板,也是在我看来决解一般问题的主要功能面板.通常只要是开发遇到了js报错或者其他代 ...

  6. pjsip视频通信开发(底层实现)之用户注册(1)

    一.PJSIP简介 对于pjsip的介绍可以看http://www.cnblogs.com/my_life/articles/2175462.html 文章,里面详细介绍了它的组成框架以及各部份的组成 ...

  7. WeifenLuo.WinFormsUI.Docking添加关闭功能

    /****************************************************************** * 创建人:HTL * 创建时间:2014-7-8 15:37: ...

  8. Cookie 与 sessonID

    Http协议是无状态的,即服务端仅仅能通过你本次提交的http请求来给出响应. cookie可用于服务端标记client.如登陆过后免输password,购物车实现等. 1.cookie Cookie ...

  9. docker桥接

    Ifconfig docker0 down Brctl delvr docker0 进入到网卡配置文件 修改eth0网卡参数 加入BIRDGE=br0 创建一个br0 其中ip为真实机的ip 更改do ...

  10. android 线程安全

    android ui 不是线程安全的,所以不能在子线程里更新ui,必须到主线程里更新