2016-10-07 6 views
0

У меня возникли проблемы с получением значения из объекта javascript, возвращаемого мне вызовом ajax для веб-службы php. Я подтвердил, что JSON возвращается правильно, как вы можете увидеть ниже:Как получить значение из многомерного массива javascript

{ 
    "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, но всякий раз, когда я пытаюсь предупредить это, я получаю сообщение неопределенных. А вот Funcition я использую для вызова 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); 
     } 
    }); 
} 

Итак, что я делаю неправильно? Заранее!

+0

Я не вижу 'value' свойства в вашем объекте JSon. Попробуйте следующее: 'response.json [i] .campeonato.id_campeonato' – DontVoteMeDown

ответ

1

Попробуйте это:

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); 
 
}

+0

Ой, я думал, что« json [i] »уже войдет в объект« campeonato ». Как я соскучился? Спасибо чувак! –

+0

@GuilhermeRamalho это нормально, np. De br pra br (y) – DontVoteMeDown

Смежные вопросы