簡體   English   中英

從GET響應/ JSON對象提取數據

[英]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);
        });
    })
});

http://jsfiddle.net/n9ffva83/

記住$(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);
    })
});

看來這個網址只是一個,屬於圖片。

http://jsfiddle.net/n9ffva83/1/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM