tratar datos de json en javascrip

Iniciado por DaNuK, 13 Agosto 2013, 19:45 PM

0 Miembros y 1 Visitante están viendo este tema.

DaNuK

Hola q tal buenas tardes a todos
necesito de su ayuda para resolver un problema q se me presento se trata de json como tratarlo en javascript
a continuacion les pongo mi code.
json es lo que me devuelve el servidor
[{"campo":"usr_prs_rfc","tipo":"string","longitud":"13"},{"campo":"usr_email","tipo":"string","longitud":"19"},{"campo":"usr_prf_id","tipo":"string","longitud":"4"},{"campo":"usr_clave","tipo":"string","longitud":"6"},{"campo":"usr_tipo","tipo":"string","longitud":"8"},{"campo":"subtipo","tipo":"string","longitud":"0"},{"campo":"usr_tienda","tipo":"int","longitud":"1"},{"campo":"usr_activo","tipo":"int","longitud":"1"},]
y este el code javascript
Código (javascript) [Seleccionar]

function DibControles(a,destino){
var datos=eval("("+a+")");
alert(datos.campo);

y me arroja un error que dice que el campo no esta definido
--
[12:31:43.189] TypeError: datos.campo is undefined @ http://localhost/skydrive/sistema/js/Ajax1.js:29
Espero me pueda ayudar
Saludos

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>

Almapa

No acabo de entender que introduces a la función con la variable "a" a partir del cual defines la variable "datos". Si le introduces uno de los objetos que hay en el array, si le quitas la función de eval() y lo defines directamente como datos=a si que me funciona. En el caso en el que "a" sea el número del objeto que se desea bastará con poner datos=variable_de_objetos[a].

No acabo de entender para que utilizas la función eval() pues no se que se inserta con la variable "a", pero creo que el problema está ahí, pues no define bien la variable "datos" por lo visto.

Un saludo!

#!drvy

#2
Como te ha dicho el compañero Almapa, lo que haces no tiene ningun sentido.

Recuerda que json se puede tratar como un simple array en javascript.

Código (javascript) [Seleccionar]
var json = [
  {"campo":"usr_prs_rfc","tipo":"string","longitud":"13"},
  {"campo":"usr_email","tipo":"string","longitud":"19"},
  {"campo":"usr_prf_id","tipo":"string","longitud":"4"},
  {"campo":"usr_clave","tipo":"string","longitud":"6"},
  {"campo":"usr_tipo","tipo":"string","longitud":"8"},
  {"campo":"subtipo","tipo":"string","longitud":"0"},
  {"campo":"usr_tienda","tipo":"int","longitud":"1"},
  {"campo":"usr_activo","tipo":"int","longitud":"1"},
];

for(var i=0; i<json.length;i++){
  var campo = json[i]['campo'];
  var tipo = json[i]['tipo'];
  var longitud = json[i]['longitud'];
  document.write(campo+' - '+tipo+' - '+longitud+'<br />');
};


O como objeto:
Código (javascript) [Seleccionar]
for(var i=0; i<json.length;i++){
  var campo = json[i].campo;
  var tipo = json[i].tipo;
  var longitud = json[i].longitud;
  document.write(campo+' - '+tipo+' - '+longitud+'<br />');
};


Resultado:
usr_prs_rfc - string - 13
usr_email - string - 19
usr_prf_id - string - 4
usr_clave - string - 6
usr_tipo - string - 8
subtipo - string - 0
usr_tienda - int - 1
usr_activo - int - 1

Saludos

DaNuK

Gracias a todos ya pude resolverlo
Saludos

<a href ="http://programacionrapido.blogspot.com">Programacion .Net</a>