2015-03-31 235 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 
 
     
 
    } 
 
    
 
    }
你可以如果需要,請使用或打印索引。它顯示數據索引。

希望它可以幫助你,我完全不確定你的要求與否,但我已盡力解決它。