Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

[Resolvido] Listar conteúdo em JSON

Recommended Posts

Cá estou novamente em minha peregrinação para entender alguma coisa sobre JSON. O objetivo é criar duas linhas num alert com os dados recebidos em JSON via AJAX.

 

Primeiramente quero enteder o "layout". A notação JSON é assim?

 

{"first_name":"Maria","last_name":"Silva"},{"first_name":"José","last_name":"Carlos"}

 

Já vi códigos que usam colchetes no início e no fim da string.

 

Em meus testes estou recebendo a string acima via AJAX e tentando trabalhar com ela para fazer minhas duas linhas num alert (pode ser no response.write também).

 

Falaram que quando se usa JSON tem que usar a tal de Eval para dar tratamento. Quem é essa mina (ahahaha)? Mas falando sério. Estava fazendo isso:

 

 person_list = eval(json_string);

 

novoArray = person_list.split(',');
var i=0;
while (i<=5)
{
document.write(novoArray[0].first_name); 
document.write("<br />");
i++;
}

 

 

Depois tentei outro teste

 

var string_json = '[{"cargo":"Gerente Comercial","id":26},{"cargo":"Assistende Marketing","id":30}]';
var lista = eval(string_json);

for( var i = 0; i < lista.length; i++ )
{
document.write('Cargo: ' + lista[ i ].cargo + ' ID : ' + lista[ i ].id );
document.write("<br />")
}

 

Não está funcionando. O que preciso fazer? O que está errado?

 

 

Um help por caridade.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salve Bruno! Cara...realmente está funcionando...não sei mais o que faço com estes vacilos de alguns navegadores. Fica uns tranqueiras na cache ai na hora de rodar aos códigos dá erro de algo que está na memória e a gente fica se descabelando para achar o erro onde não tem...obrigado.

 

Bom, agora quero que minhas duas linhas venham via AJAX. To fazendo assim

var string_json = objXMLCalendario.responseText ;

var lista = eval(string_json);

for( var i = 0; i < lista.length; i++ ){

v=('Cargo: ' + lista[ i ].cargo + ' ID : ' + lista[ i ].id );document.write("<br />")

//document.write(v)

 

eval("alert(v)");

}

 

[code]

A primeira linha é o retorno da requisição AJAX (que está funcionando, testei num alert)

Depois passo isso para a uma variável usando eval.

 

Depois do disso nem abre o alert. Tem algum "segredo" para passar o resultado do AJAX para JSON? Acheio que fosse passar a variável e pronto com os dados e pronto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa, consegui fazer funcionar. Tinha que colocar colchetes no início e no final da string. Mas só está funfando que colocar uma string lá manualmente. O ideal é fazer um recordset e carregar tudo pelo AJAX. Mas se fizer rs com loop, deixa de funcionar.

O código está assim.

<

 

 

 

[code]<

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.