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

eval解析JSON

阅读更多
平时在使用到ajax的时候一般都使用jquery直接使用回调函数,还没发生过什么问题,但是,今天有一个页面直接使用eval来解析执行json对象,居然出现了错误。
一下是执行有错误的代码:

Javascript代码

   1. var str = "{'arr':123}"; 
   2. alert(str); 
   3. alert("1111"); 
   4. var obj = eval("{'arr':123}"); 
   5. alert("2222"); 
   6. alert(obj); 

var str = "{'arr':123}";

alert(str);

alert("1111");

var obj = eval("{'arr':123}");

alert("2222");

alert(obj);

后来谷歌了一盘,他们说:要加一个圆口号。这下就对了:

Javascript代码

   1. var str = "{'arr':123}"; 
   2. alert(str); 
   3. alert("1111"); 
   4. var obj = eval("({'arr':123})"); 
   5. alert("2222"); 
   6. alert(obj); 

var str = "{'arr':123}";

alert(str);

alert("1111");

var obj = eval("({'arr':123})");

alert("2222");

alert(obj);

百思不的其解(看来js功底不咋地),找了好久,很多论坛和社区都是只有问题和回答,就是不说为什么。终于在一个地方看到有人这样说了:

引用

加一对括号让{...}先强制运算为object
没有括号,eval会认为{}是语句块,因为javascript是语句优先,因此eval后得到的是
"loc_320412":"1","loc_320481":"1",....
这在alert中显然是错误的

总结: 两个花括号之间有两种意义:语句块和JS对象。语句块优先,如果对花括号加上圆括号就只有js对象的含义了。同理,如果json返回的是数组就可以不用加圆括号

原文地址:

http://throne212.iteye.com/blog/300554
分享到:
评论

相关推荐

    巧用eval解析json对象

    NULL 博文链接:https://toyota2006.iteye.com/blog/266116

    javascript中eval解析JSON字符串.docx

    javascript中eval解析JSON字符串.docx

    js使用eval解析json(js中使用json)

    eval的用法eval函数接收一个参数s,如果s不是字符串,则直接返回s。否则执行s语句,下面给出eval解析json的示例

    javascript中eval解析JSON字符串

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

    JS使用eval解析JSON的注意事项分析

    本文较为详细的分析了JS使用eval解析JSON的注意事项。分享给大家供大家参考,具体如下: 在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行...

    js使用eval解析json实例与注意事项分享

    eval函数在js中有不少用处了,下面我来给各位朋友介绍eval解析json的实例,基于这个实例我们引出来在eval处理json数据时的一些注意事项,希望文章对各位同学会有所帮助

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

    JSON (JavaScript Object Notation)一种简单的数据格式,比xml更轻巧,下面通过本文给大家介绍JS中Eval解析JSON字符串的一个小问题,需要的朋友参考下吧

    jquery eval解析JSON中的注意点介绍

    使用eval函数来解析,并且使用jquery的each方法来遍历 用jquery解析JSON数据的方法,作为jquery异步请求的传输对象,jquery请求后返回的结果是json对象,这里考虑的都是服务器返回JSON形式的字符串的形式,对于利用...

    js解析json字符串的库

    一个在js中解析json字符串为json对象的库, 在js中 使用 var json = json_parse('json字符串'); json就是解析后的json对象,比较方便的避免eval函数。如果不想引入其他过多的js库,那么使用这个库解析json字符串还是...

    JS解析json格式字符串

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

    JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析

    json可以使用JavaScript的内置方法直接进行解析,转化成javascript对象,非常方便。 在Javascript使用eval将接送转化为json对象 var jsonData = '{"persons":{"name":"成龙","age":58},{"name":"吴京","age":33},...

    使用PHP解析JSON数据1

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

    javascript中JSON.parse()与eval()解析json的区别

    主要介绍了javascript中JSON.parse()与eval(...解析json的区别,详细描述了json格式数据的操作技巧,并结合实例形式对比分析了使用JSON.parse()与eval()解析json的区别,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics