Jquery / Ajax – 解析JSON响应

我正在玩http://randomuser.me/documentation.html api。 它只是以json格式生成随机用户数据。 但是,我似乎无法解析响应。 每当我这样做,我就会得到未定义的对象。

这是我的代码:

 $.ajax({ url: 'http://api.randomuser.me/', dataType: 'json', success: function (data) { console.log(data); alert(data.user); } });  

仔细看看返回的JSON。 您正在获取正确解码的数据,但数据结构与您的预期不符。

user字段位于名为results的数组中,您必须使用索引访问该数组。 例如,要获得第一个用户:

 var user = data.results[0].user; 

如果要请求多个结果,也可以使用循环结构。

您不能向与您自己的域(即执行脚本的域)不同的域发出AJAX请求。 这是由于安全原因。

如果你想做类似的事情,创建一个从api.randomuser.me检索数据的PHP脚本(或其他东西),然后使用AJAX来请求PHP脚本(你在JS脚本所在的地方托管) )。

是的,它与相同的域策略冲突。 您必须使用js脚本文件来执行此操作。 或者使用“jsonp”来做到这一点。 由于json数据来自第三方Web服务器,因此在这种情况下“jsonp”不适用于您。

每当使用不熟悉的JSON时,我建议在http://jsonlint.com上很好地格式化它

在这种情况下,API调用返回一个JSON对象,其结果数组包含用户对象。

 data.results[0].user; 

将为您提供您正在寻找的用户对象,您可以在代码中使用它。

为了在警告对话框中查看对象的内容,首先需要将对象传递给JSON.stringify()。