2013-02-17 32 views
3

我正在嘗試從http://www.xyz.com/abc.json表單的URL中檢索數據。 我一直試圖通過以下方式使用$ .ajax方法實現此目的。從JavaScript中的URL中獲取JSON數據?

var json = (function() { 
     var json = null; 
     $.ajax({ 
      'async': false, 
      'global': false, 
      'url': "http://www.xyz.com/abc.json.", 
      'dataType': "json", 
      'success': function (data) { 
       json = data; 
      } 
     }); 
     return json; 
    })(); 

但是我無法得到這個運行。我需要遍歷檢索的數據並檢查一些特定的條件。這可能已與$ .getJSon容易實現,如果JSON數據有名字了,但該文件的格式爲:

[{ 
     "name": "abc", 
     "ID": 46 
    }] 

,因爲其中我要有效地轉化並將其存儲在一個Javascript對象變量,然後才能使用它。任何關於我可能會出錯的建議?

回答

0

所以你的問題是如何將字符串轉換爲Json對象? 如果你使用jQuery,你可以這樣做:

jQuery.parseJSON(jsonString); 

那麼你的回報應該是:

return jQuery.parseJSON(json); 

你可以閱讀文檔here

+0

確定,將工作? $ .get默認爲異步 – 2013-02-17 05:06:24

+0

我不知道$ .get是異步的。我將刪除我的建議 – cgajardo 2013-02-17 05:08:16

+0

URL指向JSon文件。它不是一個字符串。我認爲這種方法不會完成這項工作。 – CodeMonkey 2013-02-17 06:00:43

1

看起來你將要轉換的是data響應通過包裝它與{}然後傳遞給json解析器。

function (data) { 
    json = JSON.parse("{\"arr\":"+data+"}").arr; 
} 

然後讓你的數據,這將是

json[0].name //"abc" 
+0

我認爲你已經做了一個很好的解析數據的過程,讓它回到JSon對象中。儘管服務器仍然沒有給我所需的數據。試圖想想可能是這背後的原因。 – CodeMonkey 2013-02-17 06:32:01