1

私は ajax 経由で API を呼び出しています。結果を表示する最も簡単な方法は何ですか? 結果をアラートすると、単に [オブジェクト オブジェクト] を取得します。返された json に含まれていることがわかっているアイテム (results.title など) で結果をアラートしようとすると、「未定義」エラーが発生します。

使用しているコードは次のようになります。

$.ajax({
    url: 'http://API-LINK-format=json',
    dataType: 'json',
    success: function(results) {
    alert(results.title);
    alert(results)
    }
})

JSOn を解析しようとしましたが、予期しないトークン o.

どんな助けでも大歓迎です!ありがとう

API は次のようなものを返します。

{"request":
    {
     "format":"json","method":"theMethod","id":"theID"},
     "time":"0.00863",
     "job":{"types":{"type":["Permanent"]},
     "email":"EMAIL",
     "title":"theTitle"
     }
}

よりネストされた、より長いなどのみ

編集::

使用:

alert(results.request.title);

まだ未定義のアラートが表示されます。each ループを実行したところ、どういうわけか 3 つの結果が得られたことがわかりました。私はこのコードを実行します:

$.ajax({
    url: 'http://API-LINK-format=json',
    dataType: 'json',
    success: function(results) {
        $.each(results, function(i, result){
             alert(result.title)
        }
    }
})

最初の2回は未定義として3回警告し、次に3回目で必要なものが得られます..しかし、私が言うように、APIが上記のようなjsonを返していることはわかっています。

4

2 に答える 2

0

私は非同期の問題だと思います、試してみてください:

var req = function(){

return $.ajax({
         url: 'http://API-LINK-format=json',
         dataType: 'json',
         success: function(results) {
          console.log('success');
         }
       })
});

req().done(function(data) {
 //do something with data
});

たぶん私の推測が間違っているかもしれませんが、これを試してみてください。

http://api.jquery.com/deferred.done/

于 2013-06-12T14:57:52.533 に答える