AJAX - eval y JSON

 
Vista:

eval y JSON

Publicado por Nheko (1 intervención) el 12/12/2006 18:00:12
Tengo un problema:

Intento leer los datos de un Asp con Ajax, pero la cadena que recibe no la interpreta con eval.
He probado a copiar lo que devuelve el asp literalmente en el .js y sí funciona. Esta linea en el .js:

doc2 = "[{marca: \"ALFA ROMEO \",modelo: \"Alfa 147\"},{marca: \"ALFA ROMEO \",modelo: \"Alfa 147\"}]";

y esto es lo que recibo del .asp:

[{marca: \"ALFA ROMEO\",modelo: \"Alfa 147\"},{marca: \"ALFA ROMEO\",modelo: \"Alfa 147\"}]

lo único distinto son las comillas de apertura y cierre, pero el primer caso SI funciona y el segundo (desde ASP) NO.

he probado muchas cosas con eval:

var oCoches = eval(doc);
var oCoches = eval( "(" + doc + ")" );
var oCoches = eval('doc');
etc...

pero nada.

Alguien puede echarme una mano?
Gracias,
un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:eval y JSON

Publicado por Yamil Bracho (184 intervenciones) el 12/12/2006 23:38:46
verifica que la respuesta que esta devolviendo ASP sea text
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eval y JSON

Publicado por Nheko (1 intervención) el 13/12/2006 11:43:50
He analizado en js la respuesta con Typeof y me dice que es un String.

No sé qué puede fallar.

Un saludo y gracias por la resp!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eval y JSON

Publicado por Gonzalo (26 intervenciones) el 18/12/2006 20:55:51
Diría yo que esto:

doc2 = "[{marca: \"ALFA ROMEO \",modelo: \"Alfa 147\"},{marca: \"ALFA ROMEO \",modelo: \"Alfa 147\"}]";

funciona porque lo que haces es asignar una cadena. Bien, escapas las comillas con \ porque es una cadena escrita literalmente.

Ahora bien, cuando recibes esto:
[{marca: \"ALFA ROMEO\",modelo: \"Alfa 147\"},{marca: \"ALFA ROMEO\",modelo: \"Alfa 147\"}]

y tratas de evaluarlo, lo que tienes es una cadena en la que no es que las comillas estén escapadas con \, sino que tienes una \ y unas " literalmente insertadas en la cadena. Si tratas de evaluar:

[{marca: "ALFA ROMEO",modelo: "Alfa 147"},{marca: "ALFA ROMEO",modelo: "Alfa 147"}]

deberías ver que funciona como esperas.

(Disclaimer: Puedo equivocarme, claro :) )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:eval y JSON

Publicado por Nheko (1 intervención) el 19/12/2006 00:05:04
Puede ser, pero en ASP no puedo poner comillas " sin que me corte la cadena y no conseguía pasarlas de otro modo. De todas formas, al final dejé Json y lo implementé en XML porque tenía que seguir adelante como fuera.

no obstante, si tengo un hueco para probarlo, lo haré y te contaré que tal ha ido.

Muchas gracias por las respuestas
un saludo,
Alex
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar