2013-02-17 90 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