2017-03-29 12 views
0

JSONをオンラインから取得するためにAPIを使用しようとしていますが、これはテキストをオブジェクトとして解釈し続けます。この出力とリンクのソースを比較すると、いくつかの重要な情報。jquery jsonとobjects

$(document).ready(function() { 
 
    $.getJSON("http://www.dnd5eapi.co/api/races/1", function(result) { 
 
    $.each(result, function(i, field) { 
 
     $("#output").append(field + "</br> "); 
 
    }); 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 

 
<div id="output"></div>

+1

理由があります。既存の要素に追加するだけで文字列に変換するのではなく、必要に応じてそのオブジェクトをフォーマットする必要があります。 –

+0

私はこのトピックについてもっと読むことができると思いますか? –

+0

ご参考までに、これは完全な応答です:http://www.jsoneditoronline.org/?id=13d2afdcd0c51d3ce2c9c8a4778c6850 –

答えて

0

それはあなたが単に結果のJSONオブジェクトのプロパティを繰り返し処理され、重要な情報を見逃すことはありません。再帰的に、オブジェクトのプロパティのプロパティを繰り返すわけではありません。いくつかの[object Object]が出力に表示されます。これは、プロパティ値が文字列ではなく別のオブジェクトである場合に発生します。これらにはあなたが "欠けている"情報が含まれています。

Rory McCrossanによると、これはJSONの結果が得意であり、文字列ではなくオブジェクトで既に解析されているためです。この方法で簡単にプロパティにアクセスできますが、元の文字列が必要な場合は、$ .getJSONの代わりに$ .getまたは$ .ajaxを使用し、dataTypeをテキストとして指定します。

再帰JSON反復の場合は、see thisです。シンプルなテキストベースの解析のための

例:要求がJSONを返すため

$(document).ready(function(){ 
    $.get(
    { 
     url: "http://www.dnd5eapi.co/api/races/1", 
     dataType: "text", 
     success: function(result){ 
      $("#output").append(result); 
    }}); 
}); 
+0

私はこの例と一緒に使えるのでしょうか? –

+0

私は自分の答えを編集しました。 –

+0

それは注目に値する!答えをありがとう、私はこれで何ができるかを見ていきます。 –