2015-03-31 79 views
0

这是我的第一个问题!新的使用Ajax,并遇到一个问题,也许有人可以抓住我做错了什么。如何使用Ajax JQuery.each()获取JSON值?

var featuredList; 
    $.ajax({ 
     url: "myurl", 
     type: 'GET', 
     success: function(result){ 
      featuredList = JSON.stringify(result); 

      alert(result); 

      $.each(result, function(key, value) { 
       alert('not working'); 
      }); 
     }, 
       error: function(){alert('error');} 
    }); 

我走之前没有问题的路径,这次我无法进入循环。警报(结果)正好返回我的数据。

谢谢!

+0

删除'JSON.stringify'行。 jQuery已经为你反序列化了响应,没有必要再次将它重新转换为字符串。 – 2015-03-31 12:17:19

+0

如果它确实是JSON,它是一个字符串,'$ .each'不会有太大的作用,因为没有dataType集,这是一个可能性。 – adeneo 2015-03-31 12:18:03

+0

也许值得一看$ .map。 – Jaypal 2015-03-31 12:20:00

回答

0

根据您的代码尝试做这样的:它应该工作

var data = JSON.parse(result);//here result should be json encoded data 
     $.each(data, function(key, value) { 
      alert(value); 
     }); 
-1

这将工作,因为ajax调用的结果是一个字符串。

$.each($.parseJSON(result), function(key, value) { 
    alert('This will work'); 
}); 
+0

看到完整的文档在这里http://api.jquery.com/jquery.parsejson/ – rehan 2015-03-31 12:22:36

+0

请解释为什么downvote? – rehan 2015-04-01 11:35:22

1

希望这可以帮助从AJAX请求收到你处理JSON数据,请尝试以下代码:

jQuery.ajax({ 
    url:'myurl', 
    dataType: "json", 
    data:{ 
     classId:'C001' 
    }, 
    type: "GET", 

    success: function(data) { 
     for (var j=0; j < data.length; j++) { 

      //syntax to get value for given key 
      //data[j].yourKey 

      var userId = data[j].userId; 
      var name = data[j].name; 
      var address = data[j].address; 
     } 
    } 
}); 

谢谢,

〜CHANDAN

0

使用jQuery的承诺,为您提供了更多的语义和可读的代码

var featuredList; 
$.getJSON("myurl", {"optional": "data"}) 
    .done(function(data){ 
     // successful ajax query 
     $.each(data, function(key, value) { 
      // do whatever you want with your iterated data. 
     }); 
    }); 
    .fail(function(){ 
     // catch errors on ajax query 
    }); 
0

我做这种方式

$.getJSON('url',      
    function(dataList) { // on server side I do the json_encode of the response data 
     if(dataList !== null) { 
      $.each(dataList, function(index, objList) { 
       // rest of code here 
      }); 
     } 
});  

希望这对你的作品,以及。

0
function getArray(){ 
    return $.getJSON('url'); 
} 
var gdata = []; 


getArray().then(function(json) { 

    $.each(json, function(key, val) { 
     gdata[key] = val ; 
    }); 

    console.log(gdata); 

我有同样的问题需要2天才能得到解决方案。 你必须解决承诺并返回json对象来访问该值。

0

你可以很容易地做到这一点使用的开源项目http://www.jinqJs.com

/* For Async Call */ 
var result = null; 
jinqJs().from('http://.....', function(self){ 
    result = self.select(); 
}); 

/* For Sync Call */ 
var result = jinqJs().from('http://....').select(); 
0

您还可以使用$以.json让您的解决方案,下面是一个例子

$.getJSON('questions.json', function (data) { 
 
    
 
    $.each(data,function(index,item){ 
 
     
 
     console.log(item.yourItem); // here you can get your data 
 
     
 
    } 
 
    
 
    }
你可以如果需要,请使用或打印索引。它显示数据索引。

希望它可以帮助你,我完全不确定你的要求与否,但我已尽力解决它。