[英]Extracting data from a GET response/JSON object
有一陣子沒接觸過Javascript,也找不到從JSON對象提取數據的正確方法。 因此,我基本上是向Giphy API發送一個簡單的GET請求,並嘗試從響應中獲取URL,但是由於某種原因,我會遇到各種錯誤。 這是我嘗試的:
$(function() { $('#searchButton').click(function() { console.log("test"); $("#result").append("test<br />"); var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1"); xhr.done(function(data) { console.log(this.fixed_height); $("#result").append("success got data<br />" + data + "<br />"); console.log("success got data", data); $.each(data.results, function() { $.each(this.images, function() { console.log(this.fixed_height); $("#result").append(this.fixed_height + "<br />"); }); }) }); }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <button id="searchButton">search!</button> <div id="result"></div>
你有幾個問題。 首先, data
對象中沒有results
成員。 我看到的唯一可以迭代的內容是數據對象中的另一個data
成員。 其次,在images
內部,沒有fixed_height
,只有height
。 這有效:
var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1");
xhr.done(function (data) {
$.each(data.data, function () {
$.each(this.images, function () {
console.log(this.height);
});
})
});
記住$(function () {});
JSFiddle中不需要,因此您必須提供(就像您在上面提供給我們的代碼中所做的那樣)。
編輯 :要獲取固定高度的網址,請嘗試以下操作:
var xhr = $.get("http://api.giphy.com/v1/gifs/search?q=cats&api_key=dc6zaTOxFJmzC&limit=1");
xhr.done(function (data) {
$.each(data.data, function () {
console.log(this.images.fixed_height.url);
})
});
看來這個網址只是一個,屬於圖片。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.