web-dev-qa-db-ja.com

console.log(result)は[object Object]を返します。result.nameはどのようにして取得できますか?

私のスクリプトはconsole.log(result)の結果として[object Object]を返しています。

誰かがidからnameおよびresultconsole.logに返させる方法を説明できますか。

$.ajaxSetup({ traditional: true });

var uri = "";

$("#enginesOuputWaiter").show();    
$.ajax({
    type: "GET",
    url: uri,
    dataType: "jsonp",
    ContentType:'application/javascript',
    data :{'text' : article},
    error: function(result) {
        $("#enginesOuputWaiter").hide();
        if(result.statusText = 'success') {
            console.log("ok");
            console.log(result);
        } else {
            $("#enginesOuput").text('Invalid query.');
        }
    }
});
52

JSONを文字列形式で取得するには、console.log(JSON.stringify(result))を使用します。

編集:あなたの意図が結果オブジェクトからidと他のプロパティを取得することであり、それがそこにあるかどうかを知るためにそれをコンソールに見たいなら、あなたはhasOwnPropertyでチェックし、もし存在すればプロパティにアクセスできます:

var obj = {id : "007", name : "James Bond"};
console.log(obj);                    // Object { id: "007", name: "James Bond" }
console.log(JSON.stringify(obj));    //{"id":"007","name":"James Bond"}
if (obj.hasOwnProperty("id")){
    console.log(obj.id);             //007
}
81
suvartheec

JSオブジェクトをJSON文字列に変換するためにJSON.stringify(result)を追加してみてください。

あなたのコードから、 AJAXリクエストが失敗した の場合に呼び出されるerrorに結果が記録されていることがわかります。そのため、id/name/etcへのアクセス方法がわからないのです。それから(あなたはエラー状態の中で成功をチェックしています!).

Chromeのコンソールを使用している場合は、JSONを文字列化しなくてもオブジェクトを参照できるため、デバッグが簡単になります。

28
Biarity