2016-04-28 11 views
0

私はこのURLにアクセスします。

[{ 
    "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()を使用しようとしている:http://jservice.io/api/random出力は次のようなものです

<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.titleはありません

Data: undefined 
Status: success 

答えて

3

  1. dataは配列です。
  2. titleは、配列要素のcategoryの下にネストされます。この特定応答については

、あなたは(おおよそ)必要があるでしょう:

data[0].category.title 

しかし、あなたは複数の結果を取り戻すことができれば、あなたが実際にやろうとしているかを決定する必要があります。

3

戻り値は配列です。したがって、 data[0]を使用する必要があります。また、titlecategoryオブジェクト内にあります。 これを試してください。

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

結果はまた、JSONオブジェクトとしてURLにアクセスすることによって達成することができます。参照のためにコードの下に共有する。

<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> 
関連する問題