JavaScript - el método json.parse() no me funciona

   
Vista:

el método json.parse() no me funciona

Publicado por Manuel (2 intervenciones) el 01/06/2016 15:10:43
Buenos días!

Me gustaría poder solucionar el error:
VM2245:1 Uncaught SyntaxError: Unexpected token _ in JSON at position 1

Primero paso la variable $resultadoFinal de php y la convierto a json, a continuación creo un bucle que itera sobre resultadofinal para obtener los valores que pasaré a un array que llamo _add, después paso el array a json pero obtengo el error descrito.

Ahí va el código:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script type="text/javascript">
var resultadofinal = <?php echo json_encode( $resultadoFinal ) ?>;
var _add = new Array();
var _data;
for (i = 0; i < resultadofinal.length; i++)
{
_data = '{"address": "'+_poblacion+','+resultadofinal[i]['calle']+','+resultadofinal[i]['numero']+'", "content": "'+resultadofinal[i]['nombreempresa']+'"}';
 
_add.push(_data);
 
}
console.log(_add);
// JSON
var data = JSON.parse('[_add]');
console.log(data);
 
</script>

En console.log obtengo:

["{"address": "Barcelona,Río de Janeiro,5", "content": "garibaldi cañeros molón S A."}", "{"address": "Barcelona,Travesera de les corts,5", "content": "JM fraguados S.L."}", "{"address": "Barcelona,Colón,1", "content": "caramelos S.L."}"]

Alguna idea?

Muchas gracias de antemano, por la atención prestada.
Saludos cordiales.
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
Imágen de perfil de Jordi

el método json.parse() no me funciona

Publicado por Jordi (75 intervenciones) el 02/06/2016 06:34:52
Hola Manuel,

Eso es porque le estás pasando el _add como un string.
Lo que le estás pasando es el string "[_add]" y le tienes que pasar la variable _add.

1
var data = JSON.parse(_add);
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
Imágen de perfil de Vainas

el método json.parse() no me funciona

Publicado por Vainas (239 intervenciones) el 02/06/2016 18:52:36
Buenas:

No me queda claro que quieres hacer si pasar un json a un objeto de javascript o lo contrario. Entiendo que sabes que un json es una cadena de texto y que un objeto javascript es un objeto.

Segun lo que muestras _add tiene un array con strings en cada una de sus posiciones. o bien lo que quieres hacer es algo asi?

1
var data = JSON.parse('['+_add.toString()+']');

Convierto con toString() todos los string del array en una sola cadena que los contiene a todos. Le agrego A la cadena delante y detras los caracteres para que sea un array y finalmente como es una cadena la convierto en un objeto javascript.

Creo que es mas facil hacer un objeto javascript sin mas:

1
2
3
4
5
6
7
8
9
for (i = 0; i < resultadofinal.length; i++)
{
_data = { "address": _poblacion+','+resultadofinal[i]['calle']+','+resultadofinal[i]['numero'],
"content": resultadofinal[i]['nombreempresa']};
 
_add.push(_data);
 
}
console.log(_add);

Tienes el mismo resultado que en el primero que he puesto pero sin tener que estar pasando todo a string. Me he hecho una demo aqui: https://jsfiddle.net/jgf1pmsg/

Espero que sirva.

Saludos.
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