Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Separar elementos Json

Ola, estou com dificuldades para separar objetos Json. Recebo via ajax o seguinte objeto:

{"status":"success","alunos":[[{"nome":"Caroline "}],[{"nome":"Larissa"}],[{"nome":"Isadora Graser Marasquin"}]]}

Gostaria pegar somente os nomes para popular um ul. Entretanto não estou conseguindo. Segue o que eu tentei:

$.ajax({
    url: '../EventoController/listarAlunosMatriculados',
    data: 'eventId='+event.id,    
    type: 'POST',
    dataType: 'json',
    success: function(response){    
        if(response.status == 'success')                            
            {
                var alunos = JSON.stringify(response.alunos);
                 $("#aluno").html(alunos);
            }
    },
    error: function(e){
        alert('Error processing your request: '+e.responseText);
    }
});

entrentanto meu ul fica com o seguinte formato:

[[{"nome":"Caroline"}]

Como eu removo as chaves e conchetes? Desde já obrigado pela ajuda

2 respostas
solução!

O comando JSON.stringify serve para converter um objeto JSON em string. Essa conversão não se faz necessária, você precisa manter o JSON recebido, e fazer um loop dentro do elemento "alunos", que possui um array com os nomes dos alunos.

O seguinte exemplo deve ajudar:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript">
$( document ).ready(function() {
    var teste = {"status":"success","alunos":[[{"nome":"Caroline "}],[{"nome":"Larissa"}],[{"nome":"Isadora Graser Marasquin"}]]};

    var minha_lista = "<ul>";
    for (i = 0; i < teste.alunos.length; i++) { 
        minha_lista += "<li>" + teste.alunos[i][0]["nome"] + "</li>";
    }
    minha_lista += "</ul>";
    $("#aluno").html(minha_lista);
});

</script>
<div id="aluno"></div>

Funcionou muito obrigado pela ajuda me salvou hehe