0

重複の可能性:
ネストされたデータ構造/ JSONがありますが、特定の値にアクセスするにはどうすればよいですか?

基本的に、次のようなjsonオブジェクトが返されます。

"products":[
    {
        "id": "21102165",
        "name": "Eliza J (3/4 sleeve ruched waist dress)",
    }]

それを表示する私の方法:

function getCart(){
var json = $.getJSON('https://'+storedomain+'/cart?'+fcc.session_get()+'&output=json&callback=?');
alert(json['name']);
}

ただし、アラートには「未定義」と表示されます。私はここで間違っているのですか?

ありがとう

4

3 に答える 3

4

$.getJSON$ .Deferredオブジェクトを返し、結果ではありません

function getCart(){
    $.getJSON('https://'+storedomain+'/cart?'+fcc.session_get()+'&output=json&callback=?', function(data) {
        console.log(data.products[0].name);
    });
}

できるよ:

function getCart(){
    return $.getJSON('https://'+storedomain+'/cart?'+fcc.session_get()+'&output=json&callback=?');
}  

$.when(getCart()).then(function(data) {
    console.log(data.products[0].name);
});
于 2013-01-24T14:42:21.933 に答える
0

あなたの方法は次のようになります:

function getCart(callback) {
    var url = 'https://'+storedomain + '/cart?'+fcc.session_get()+'&output=json&callback=?';
    $.getJSON(url, callback);
}

// Usage
getCart(function(data) {
    console.log(data.products); // array of car objects
});

または、salexchの回答で説明されているようにdefferedオブジェクトを使用できます。

AJAXリクエストの非同期性とコールバック関数に精通している必要があります。

于 2013-01-24T14:48:47.330 に答える
0

成功コールバックを使用します。

var jqxhr = $.getJSON("example.json", function(data, textStatus, jqXHR) {
  alert("success");
})
.success(function(data, textStatus, jqXHR) { alert("second success"); })
.error(function() { alert("error"); })
.complete(function() { alert("complete"); });

getJSONのAPIドキュメントを参照してください。

于 2013-01-24T14:44:38.323 に答える