关闭

JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for

9572人阅读 评论(0) 收藏 举报
分类:

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。

  1. var json = [  
  2. {"id":"1","tagName":"apple"},  
  3. {"id":"2","tagName":"orange"},  
  4. {"id":"3","tagName":"banana"},  
  5. {"id":"4","tagName":"watermelon"},  
  6. {"id":"5","tagName":"pineapple"}  
  7. ];  
  8.   
  9. $.each(json, function(idx, obj) {  
  10. alert(obj.tagName);  
  11. });  

上面的代码片断工作正常,提示 “apple”, “orange” … 等,如预期一样。
问题: JSON 字符串

下面的例子中,声明了一个JSON字符串(随附单或双引号)直接地。

  1. var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"},  
  2. {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"},  
  3. {"id":"5","tagName":"pineapple"}]';  
  4.   
  5. $.each(json, function(idx, obj) {  
  6. alert(obj.tagName);  
  7. });  

在Chrome中,它显示在控制台下面的错误:

Uncaught TypeError: Cannot use 'in' operator to search for '156' 
in [{"id":"1","tagName":"apple"}...

解决方案:JSON字符串转换为JavaScript对象。
要修复它,通过标准JSON.parse()或jQuery 的 $.parseJSON 将其转换为JavaScript对象。

  1. var json = '[{"id":"1","tagName":"apple"},{"id":"2","tagName":"orange"},  
  2. {"id":"3","tagName":"banana"},{"id":"4","tagName":"watermelon"},  
  3. {"id":"5","tagName":"pineapple"}]';  
  4.   
  5. $.each(JSON.parse(json), function(idx, obj) {  
  6. alert(obj.tagName);  
  7. });  
  8.   
  9. //or   
  10.   
  11. $.each($.parseJSON(json), function(idx, obj) {  
  12. alert(obj.tagName);  
  13. });  
0
0
查看评论

JQuery $.each遍历JavaScript数组对象实例

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。 var json = [ {"id":"1","tagName":"apple"}, {"id":"2",...
  • chenyq2008
  • chenyq2008
  • 2014-12-19 22:44
  • 7844

Uncaught TypeError: Cannot use 'in' operator to sea

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"tree_id":38,"tree_name":"我是一棵小小的树,...
  • u014801801
  • u014801801
  • 2016-10-22 19:41
  • 1852

jquery each报 Uncaught TypeError: Cannot use 'in' operator to search for错误

在写前端的时候用jquery来遍历后台传来的json数组时候遇到这个错误:Uncaught TypeError: Cannot use 'in' operator to search for。后来查到原因是因为:一部分浏览器后端传过来的是json对象,但是我们前端是需要Javascr...
  • zhouyan8603
  • zhouyan8603
  • 2015-08-13 15:44
  • 10166

AngularJS报错 Cannot use 'in' operator to search for 'functionName' in 1

在使用AngularJS的指令时,如果 element上有方法绑定,并且在调用该方法时候可以会抛出异常 Cannot use 'in' operator to search for 'functionName' in 1  下面举一个具体实例,定...
  • ch717828
  • ch717828
  • 2016-01-12 11:44
  • 2597

...Uncaught TypeError: Cannot use 'in' operator to search for“length”in { json数据 }

1.控制台打印返回的数据是: [Web浏览器] "{d:[{"col":7,"row":7, "size_x":5,"size_y":5,"id":"1",&quo...
  • weixin_39581226
  • weixin_39581226
  • 2017-11-17 16:44
  • 308

echarts.min.js:25 Uncaught TypeError: Cannot read property 'features' of undefined 报错解决方法

echarts.min.js:25 Uncaught TypeError: Cannot read property ‘features’ of undefined 这是由于加载的echarts.mim.js 库中并没有包含地图库进去,可能在我们看,地图不属于基本图表。解决方法就是下载相应的地...
  • u010236169
  • u010236169
  • 2016-05-25 19:42
  • 5308

解决 js报错:Uncaught TypeError- Cannot use 'in' operator to search for 'length' in [{"id":"636","...

Chrome js报错:Uncaught TypeError- Cannot use 'in' operator to search for 'length' in [{"id":"636","... 一、问题描述...
  • HaHa_Sir
  • HaHa_Sir
  • 2018-01-10 16:12
  • 94

Angular Js执行ng serve 报错 Cannot read property 'config' of null

开始使用Angular js编码了,一切就绪,执行ng serve,满心欢喜等待项目启动,结果。。。报错啦。。。啦啦啦。。 悲催了吧,傻眼了吧。 Don't worry!! 到你的Angular JS工程根目录下去,看看结构目录,正常的应该是: 而出现上述错误的原因是你的项目缺少了“...
  • xqq580231
  • xqq580231
  • 2017-12-27 10:13
  • 210

JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。 [js] view plaincopy var json = [   {"id":"1&q...
  • zengmingen
  • zengmingen
  • 2015-11-20 18:06
  • 9572

VUE 报这个错,在浏览器的 console 中报 uncaught (in promise)

表示,VUE 调接口的某个方法没有加上 catch 而已。加上应该就不会报了。
  • wide288
  • wide288
  • 2018-01-15 15:54
  • 90
    个人资料
    • 访问:561198次
    • 积分:9357
    • 等级:
    • 排名:第2334名
    • 原创:382篇
    • 转载:205篇
    • 译文:0篇
    • 评论:33条