如何从javascript多维数组检索值

How to retrieve value from javascript multidimensional array

本文关键字:数组 检索 javascript      更新时间:2023-09-26

我有麻烦,从一个ajax调用php webservice返回给我的javascript对象检索值。我确认返回的JSON是正确的,如下所示:

{
    "json": [{
        "campeonato": {
            "id_campeonato": "630",
            "nome_campeonato": "Copa do Mundo'r",
            "nome_pais": "África'r"
        }
    }, {
        "campeonato": {
            "id_campeonato": "11",
            "nome_campeonato": "Série A'r",
            "nome_pais": "Brasil'r"
        }
    }]
}

我试图使用 response.json[i].value 获取对象,但每当我试图提醒这一点时,我都会得到未定义的消息。这里是ajax调用的函数:

webservice.js

function listaCampeonatos(){
    $.ajax({
        url: 'http://localhost/projetos/centraljogos/webservice/listagem.php',
        type: 'GET',
        dataType: 'json',
        data: {type:'listaCampeonatos'},
        ContentType: 'application/json',
        success: function(response){
            //alert('Listagem bem sucedida!');
            //$('#resultado').html(JSON.stringify(response));
            //console.log(response);
            alert(JSON.stringify(response));
            for (i=0 ; i<response.json.length ; i++){
                //alert('Entrou no for / Pos. array: '+i);
                console.log(response.json[i].nome_campeonato);
                alert(response.json[i].nome_campeonato);
            }
        },
        error: function(err){
            alert('Ocorreu um erro ao se comunicar com o servidor! Por favor, entre em contato com o administrador ou tente novamente mais tarde.');
            console.log(err);
        }
    });
}

那么,我做错了什么?提前感谢!

试试这个:

for (i=0 ; i<response.json.length ; i++){
    //alert('Entrou no for / Pos. array: '+i);
    console.log(response.json[i].campeonato.nome_campeonato);
    alert(response.json[i].campeonato.nome_campeonato);
}

json[i]是这个对象:

{
    "campeonato": {
        "id_campeonato": "630",
        "nome_campeonato": "Copa do Mundo'r",
        "nome_pais": "África'r"
    }
}

所以你必须先访问campeonato属性然后再访问id_capeonato属性。

工作片段:

var response = {
    "json": [{
        "campeonato": {
            "id_campeonato": "630",
            "nome_campeonato": "Copa do Mundo'r",
            "nome_pais": "África'r"
        }
    }, {
        "campeonato": {
            "id_campeonato": "11",
            "nome_campeonato": "Série A'r",
            "nome_pais": "Brasil'r"
        }
    }]
};
// Directly
console.log(response.json[0].campeonato);
// Within a loop
for (var i = 0; i < response.json.length; i++) {
  console.log(response.json[i].campeonato);
}