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

原创 2015年11月20日 18:06:50

查看一个简单的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. });  
版权声明:本文为原创文章,转载请注明出处:http://blog.csdn.net/zengmingen。-松门一枝花csdn博客

相关文章推荐

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

在使用AngularJS的指令时,如果 element上有方法绑定,并且在调用该方法时候可以会抛出异常 Cannot use 'in' operator to search for 'function...

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

在写前端的时候用jquery来遍历后台传来的json数组时候遇到这个错误:Uncaught TypeError: Cannot use 'in' operator to search for。后来查到...

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

查看一个简单的jQuery的例子来遍历一个JavaScript数组对象。 var json = [ {"id":"1","tagName":"apple"}, {"id":"2",...

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

Uncaught TypeError: Cannot use 'in' operator to sea

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in [{"tree_id":38,"tree_name":"...

javascript中 字符串转JSON 和 JSON遍历,原生超级for()和 jquery的$.each()比较

//jsonObject 字符串转 json必须加括号 ({'1':'1'}) var jsonObj = eval("("+"{'one':'一','two':'...

$.grep ,$.map,jquery筛选数组之grep、each、inArray、map的用法及遍历json对象

var data = $.grep(this.dataArray, this.proxy(function(item, idx){     return $.inArray(item.id, thi...

jquery筛选数组之grep、each、inArray、map的用法及遍历json对象

记录jQuery下几种用法: jquery grep()筛选遍历数组 $().ready( function(){ var array = [1,2,3,4...

DOM 和 jQuery对象相互转换 以及for-in和$.each遍历方法

DOM 和 jQuery对象相互转换 以及for-in和$.each遍历方法

jquery筛选数组之grep、each、inArray、map的用法及遍历json对象

grep $().ready( function(){ var array = [1,2,3,4,5,6,7,8,9]; var filterarray =...
  • yyixin
  • yyixin
  • 2012-01-06 20:23
  • 3649
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)