Foros del Web » Programando para Internet » Javascript »

error al interpretar un texto json

Estas en el tema de error al interpretar un texto json en el foro de Javascript en Foros del Web. buenos dias estoy pasando un json, conformado por las ciudades de chile, pero el javascript, al recorrer el arreglo, me lo recorre letra por letra ...
  #1 (permalink)  
Antiguo 31/10/2012, 14:06
Avatar de fbirrer  
Fecha de Ingreso: enero-2006
Ubicación: Santiago de Chile
Mensajes: 329
Antigüedad: 18 años, 2 meses
Puntos: 0
error al interpretar un texto json

buenos dias

estoy pasando un json, conformado por las ciudades de chile, pero el javascript, al recorrer el arreglo, me lo recorre letra por letra y no item por item, la arreglo de json que tengo es este:

Código PHP:
['SAN ANTONIO','SAN BERNARDO','SAN CARLOS','SAN CLEMENTE','SAN ESTEBAN','SAN FABIAN','SAN FELIPE','SAN FERNANDO','SAN GREGORIO','SAN IGNACIO','SAN JAVIER','SAN JOAQUIN','SAN JOSE DE MAIPO','SAN JUAN DE LA COSTA','SAN MIGUEL','SAN NICOLAS','SAN PABLO','SAN PEDRO','SAN PEDRO DE ATACAMA','SAN PEDRO DE LA PAZ','SAN RAFAEL','SAN RAMON','SAN ROSENDO','SAN VICENTE','SANTA BARBARA','SANTA CRUZ','SANTA JUANA','SANTA MARIA','SANTIAGO','SANTIAGO CENTRO','SANTO DOMINGO'
¿Que tengo que hacer para que la cadena la pagina web me la reconozca como json?

Muchas gracias
__________________
Desde Santiago de Chile
Grupo Universite
Información sobre los Institutos Chilenos de Educación
www.universite.cl
  #2 (permalink)  
Antiguo 31/10/2012, 14:41
 
Fecha de Ingreso: enero-2010
Mensajes: 19
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: error al interpretar un texto json

Ese arreglo no es un json es un array, lo que necesitas es recorrer el array para poder recuperar el valor:

Código Javascript:
Ver original
  1. var arreglo = ['SAN ANTONIO', 'SAN BERNARDO', 'SAN CARLOS', 'SAN CLEMENTE', 'SAN ESTEBAN', 'SAN FABIAN', 'SAN FELIPE', 'SAN FERNANDO', 'SAN GREGORIO', 'SAN IGNACIO', 'SAN JAVIER', 'SAN JOAQUIN', 'SAN JOSE DE MAIPO', 'SAN JUAN DE LA COSTA', 'SAN MIGUEL', 'SAN NICOLAS', 'SAN PABLO', 'SAN PEDRO', 'SAN PEDRO DE ATACAMA', 'SAN PEDRO DE LA PAZ', 'SAN RAFAEL', 'SAN RAMON', 'SAN ROSENDO', 'SAN VICENTE', 'SANTA BARBARA', 'SANTA CRUZ', 'SANTA JUANA', 'SANTA MARIA', 'SANTIAGO', 'SANTIAGO CENTRO', 'SANTO DOMINGO'];
  2.  
  3. var ul = document.getElementById('mostrar');
  4. for (var lugar in arreglo) {
  5.     var li = document.createElement('li');
  6.     li.appendChild(document.createTextNode(arreglo[lugar]));
  7.     ul.appendChild(li);
  8. }

Lo puedes probar aquí: http://jsbin.com/olegoh/1/
  #3 (permalink)  
Antiguo 31/10/2012, 15:42
Avatar de IsaBelM
Colaborador
 
Fecha de Ingreso: junio-2008
Mensajes: 5.032
Antigüedad: 15 años, 10 meses
Puntos: 1012
Respuesta: error al interpretar un texto json

estamos acostumbrados a ver la estructura json como un objeto con clave:valor
{"uno": 1, "dos": 2, "tres": 3};

pero no ha de ser un objeto. puede ser un array usando la notación json
[1,2,3];

aquí podemos validarlo
__________________
if(ViolenciaDeGénero) {alert('MUJER ASESINADA');}
  #4 (permalink)  
Antiguo 31/10/2012, 16:52
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 8 meses
Puntos: 103
Respuesta: error al interpretar un texto json

imagino que tienes este dato
Código Javascript:
Ver original
  1. var resultado = "['SAN ANTONIO','SAN BERNARDO','SAN CARLOS','SAN CLEMENTE','SAN ESTEBAN','SAN FABIAN','SAN FELIPE','SAN FERNANDO','SAN GREGORIO','SAN IGNACIO','SAN JAVIER','SAN JOAQUIN','SAN JOSE DE MAIPO','SAN JUAN DE LA COSTA','SAN MIGUEL','SAN NICOLAS','SAN PABLO','SAN PEDRO','SAN PEDRO DE ATACAMA','SAN PEDRO DE LA PAZ','SAN RAFAEL','SAN RAMON','SAN ROSENDO','SAN VICENTE','SANTA BARBARA','SANTA CRUZ','SANTA JUANA','SANTA MARIA','SANTIAGO','SANTIAGO CENTRO','SANTO DOMINGO']  "

me pregunto de donde lo estas obteniendo, por que en realidad, para ser parseado, en vez de comillas simples nescesitarias unas comillas dobles, esto si seria parseado correctamente
Código Javascript:
Ver original
  1. JSON.parse('["xxxxx","yyyyyyyy"]')

pero si hacemos
JSON.parse(resultado), nos tiraria error.

trata de primero usar comillas dobles, y despues a ese string le aplicas JSON.parse
Código Javascript:
Ver original
  1. var elemento = JSON.parse(resultadoConComillasDobles)

Un saludo y suerte ( recuerda que si usas PHP puedes usar json_encode(variable) )

Etiquetas: interpretar, js, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:55.