`
javawangli
  • 浏览: 221574 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript eval函数解析json数据时为什么 加上圆括号

阅读更多

javascript eval函数解析json数据时为什么 加上圆括号?

 

var sts=eval("("+xhr.responseText+")"); 强制转化成json对象

 

 

为什么要 eval这里要添加 “("("+data+")");//”呢?

 

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

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

对于这种写法,在JS中,可以到处看到。

分享到:
评论

相关推荐

    javascript中eval解析JSON字符串

    我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用 eval() 函数。 var str = '{"name": "hanzichi", "age": 10}'; var obj = eval('...

    为什么JS中eval处理JSON数据要加括号

    由于Ajax的兴起,JSON这种轻量级的数据格式作为...加上圆括号的目的是迫使eval函数在处理JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为语句(statement)来执行。举一个例子,例如对

    使用PHP解析JSON数据1

    二、主要技术本案例主要在PHP中使用JavaScript内置的eval()函数对JSON数据进行解析并将解析内容显示在页面中 三、效果图展示实现效果图,如图1所

    javascript巧用eval函数组装表单输入项为json对象的方法.docx

    javascript巧用eval函数组装表单输入项为json对象的方法.docx

    javascript巧用eval函数组装表单输入项为json对象的方法

    主要介绍了javascript巧用eval函数组装表单输入项为json对象的方法,实例分析了JavaScript使用eval函数动态构造json对象的相关技巧,需要的朋友可以参考下

    JS解析json格式字符串

    JS解析json格式字符串最简便方法,利用javaScript内置eval函数来实现

    JavaScript转换与解析JSON方法实例详解

    本文实例讲述了JavaScript转换与解析JSON方法。分享给大家供大家参考,具体如下: json格式数据如下: var json = { 'jquery': [{ "id": "1", "type": "ASP.NET", "title": "JSON全解析"}] } alert(json....

    JavaScript解析JSON格式数据的方法示例

    本文实例讲述了JavaScript解析JSON格式数据的方法。分享给大家供大家参考,具体如下: 1、使用JavaScript提供的eval()函数 function JsonText1() { var strJSON = "{'Name':'Kevin','Age':'23'}"; //得到...

    JS中Eval解析JSON字符串的一个小问题

    我们都知道,高级浏览器可以用 JSON.parse() API 将一个 JSON 字符串解析成 JSON 数据,稍微欠妥点的做法,我们可以用eval() 函数。 JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧。...

    javascript eval和JSON之间的联系

    eval函数会评估一个给定的含有JavaScript代码的字符串,并且试图去执行包含在字符串里的表达式或者一系列的合法的JavaScript语句。eval函数将把最后一个表达式或者语句所包含的值或引用作为返回值。 举例说明 eval...

    json2 json

    使用thisfile recommended.json_parse.js:该文件包含替代JSON的parse函数thatuses递归下降而不是eval.json_parse_state.js:此文件包含替代JSON的parse函数thatuses状态机器代替eval.cycle.js:这个文件包含了两个...

    js解析与序列化json数据(一)json.stringify()的基本用法

    早期的JSON解析器基本上就是使用JavaScript的eval()函数。由于JSON是JavaScript语法的自己,因此eval()函数可以解析、解释并返回JavaScript的对象和数组。 ECMAScript 5对解析JSON的行为进行了规范...

    JavaScript解析及序列化JSON的方法实例分析

    JSON 之所以这么流行,是因为 JSON 数据结构可以被解析为 JavaScript 对象。JSON 之前的 XML 数据结构要被解析,需要先解析成 DOM 文档,然后再从中提取出数据。相比之下,JSON 数据结构方便多咯O(∩_∩)O~ 所以 ...

    json的介绍 以及 json2.js的用法

    JSON stringifier进行反向操作,可以把JavaScript数据结构转换为JSON文本。JSON不支持循环数 据结构,因此应小心不要为JSON stringifier提供循环结构。 使用格式: var myJSONText = JSON.stringify(myObject, ...

    json2 js json格式处理包

    当2009年12月ECMA大会通过ECMAScript编程语言标准第五版时,JSON成为JavaScript的内置特性。 json2.js:该文件在全局对象中创建一个JSON属性(如果还没有的话),将其值设置为一个包含stringify的对象方法和解析方法。...

    JavaScript数组、json对象、eval()函数用法实例分析

    主要介绍了JavaScript数组、json对象、eval()函数用法,结合实例形式分析了JS数组创建、赋值、连接、翻转,json对象定义、读取,eval()函数的功能、使用等,需要的朋友可以参考下

    JavaScript Eval 函数使用

    值得注意的 当传入是Json类型的时候要var user = eval(result.d); 当传入是字符串的时候要用eval(“exception = “+result.responseText); 代码如下: $.ajax ( { type: “POST”, contentType: ...

    ajax获取json数据为undefined原因分析

    Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的... 一般处理服务器传来的json值时,我们都会用两种方式进行处理: 1.一种为使用eval()函数。var dataObj=eva

Global site tag (gtag.js) - Google Analytics