当我访问此网址时:http://jservice.io/api/random输出如下:
[{
"id": 67917,
"answer": "agua",
"question": "After some fierce flamencoing, you might hear cries of this, Spanish for \"water\"",
"value": 800,
"airdate": "2004-11-18T12:00:00.000Z",
"created_at": "2014-02-11T23:29:50.743Z",
"updated_at": "2014-02-11T23:29:50.743Z",
"category_id": 1145,
"game_id": null,
"invalid_count": null,
"category": {
"id": 1145,
"title": "foreign words \u0026 phrases",
"created_at": "2014-02-11T22:52:16.443Z",
"updated_at": "2014-02-11T22:52:16.443Z",
"clues_count": 115
}
}]
我正在尝试使用$.get()
来获取请求数据:
<html>
<head>
<title>Quiz</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
</body>
<script>
$.get("http://jservice.io/api/random", function(data, status){
alert("Data: " + data.title + "\nStatus: " + status);
});
</script>
</html>
但输出是这样的:
Data: undefined
Status: success
答案 0 :(得分:3)
没有data.title
。
data
是一个数组。 title
嵌套在数组元素category
下。对于此特定的响应,您需要(大致):
data[0].category.title
但是,如果您可以获得多个结果,则需要确定您实际要做的事情。
答案 1 :(得分:3)
返回是一个数组。所以你必须使用
data[0]
。此外,title
位于category
对象内。
试试这个。
$.get("http://jservice.io/api/random", function(data, status){
alert("Data: " + data[0].category.title + "\nStatus: " + status);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 2 :(得分:1)
也可以通过访问url作为json对象来实现结果。共享以下代码以供参考。
<html>
<head>
<title>Quiz</title>
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>
<body>
</body>
<script>
(function() {
var srcURL = "http://jservice.io/api/random";
$.getJSON( srcURL, {
format: "json"
})
.done(function( data ) {
$.each( data, function( i, item ) {
console.log(item.category.title);
});
});
})();
</script>
</html>