2017-09-09 30 views
-2

URLは正しいです。ブラウザに入力するとJSONデータが取得されますが、jQueryのGETリクエストを呼び出した後にデータがページに表示されません。どうして?JSONデータを取得できませんjQuery

HTMLコード:

<html> 
<head></head> 
    <body> 
     <h4 id="test">yo</h4> 
    </body> 
</html> 

JSコード:

function getNutrition() { 
$.getJSON("https://api.nal.usda.gov/ndb/search/?format=json&q=banana&max=25&ds=Standard%20Reference&offset=0&api_key=rWKfuG6YjQU9h0WMNksynapfFqcr3BJWK5giCqRQ").then(function(data) { 
    // $('h4').html(data.list.item[0]); 
    $('#test').html(data); 
})} 

getNutrition(); 
+0

あなたは 'getNutrition'を呼び出すないとき、data''の値は何ですか? 'id'テストの要素が存在し、' getNutrition'を呼び出すときに存在しますか?ここに詳細は不十分です。 –

+0

https://jsfiddle.net/mgbve3w1/ –

+0

@SpencerWieczorekもっとコードを追加しました。はい、IDテストが定義されていて、getNutrition()を呼び出しました。私のコードを実行すると、コンソールからエラーメッセージは返されません。データはちょうど表示されません。 – Tiramisu

答えて

0

を使用する - あなたは印刷 JSONの一部にしたい場合は、あなたが興味を持っているitem[0].nameまたはitem[0].group
のようにそれのうち右のプロパティを取得してみてくださいjsonをページ上に置くには、以前にもjsonを解析する必要があります。

最も簡単な方法はJSON.stringify()を使用することです:

$('#test').html(JSON.stringify(data)); 
+0

私は別のコードで少し混乱しています私は上記のようにJSON.stringifyを使用せずにデータを呼び出したと書いており、JSONデータを正常に取り戻すことができました。私は$ .getJSONが自動的に解析を処理すると思った? JSON.stringifyを使用する必要があるこの特定のケースに関して異なるものがありますか? – Tiramisu

+0

JSON - JavaScript **オブジェクト**表記法。カジュアルなオブジェクトや配列に非常に似ています。コンテンツにアクセスするには、解析する必要があります。たとえば、 'JSON.parse()'を使ってオブジェクトに変換します。サイクルを使用して印刷することができます。 '$ .getJSON'は' $ .ajax({url:url、dataType: 'json'、data:data、success:callback})の短いバージョンです。 – voloshin

0

item[0]はJSONオブジェクトあるので、あなたは何を見ていません。表示したい場合はJSON.stringify

function getNutrition() { 
 
    $.getJSON("https://api.nal.usda.gov/ndb/search/?format=json&q=banana&max=25&ds=Standard%20Reference&offset=0&api_key=rWKfuG6YjQU9h0WMNksynapfFqcr3BJWK5giCqRQ").then(function(data) { 
 
    // console.dir(data); 
 
    $('h4').html(data.list.item[0].name); 
 
    $('#test').html(JSON.stringify(data, null, 2)); 
 
    }) 
 
} 
 

 
getNutrition();
<h4></h4> 
 
<pre id="test"></pre> 
 

 

 
<script src="//code.jquery.com/jquery-3.1.0.js"></script>

+0

私はいつでもJSON.stringifyを使用しなければなりませんJSONリクエストを取得しますか?データを変換して文字列として解析する必要がありますが、$ .getJSONがそれを処理すると思いますか?私が書いた別のコードの一部として、私は上記のようにJSON.stringifyを使用せずにデータを呼び出したので、JSONデータを正常に取り戻すことができました。 – Tiramisu

+0

また、私がコメントアウトしたコード行については、具体的には最初のオブジェクトを対象にしていましたが、提案したようにJSON.stringifyをデータとして呼び出すと表示されます – Tiramisu