2016-04-28 16 views
0

Wenn ich diese URL:.. http://jservice.io/api/random der Ausgang ist so etwas wie dieses:

[{ 
    "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 
    } 
}] 

Ich versuche $.get() zu verwenden, um die Daten der Anfrage zu erhalten:

<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> 

Aber der Ausgang ist dies:

Data: undefined 
Status: success 

Antwort

3

Es gibt keine data.title.

  1. data ist ein Array.
  2. title ist unter dem Array-Element category verschachtelt.

Für diese spezifische Antwort, müssten Sie (ungefähr):

data[0].category.title 

Aber wenn Sie wieder mehrere Ergebnisse zu bekommen, müssen Sie entscheiden, was Sie eigentlich tun würde.

3

Die Rückgabe war ein Array. Also müssen Sie data[0] verwenden. Auch die title ist innerhalb der category Objekt. Versuchen Sie dies.

$.get("http://jservice.io/api/random", function(data, status){ 
 
     alert("Data: " + data[0].category.title + "\nStatus: " + status); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

1

Das Ergebnis kann auch durch Zugriff auf die URL als JSON-Objekt erreicht werden. Teilen unter Code als Referenz.

<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>