Foros del Web » Programando para Internet » Jquery »

Guardar JSON en variable local

Estas en el tema de Guardar JSON en variable local en el foro de Jquery en Foros del Web. @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Javascript : Ver original var dt ; $. getJSON ( '/data/es2015.json' , function ( data ) { dt = data ; } ...
  #1 (permalink)  
Antiguo 13/03/2016, 15:32
Avatar de edumurru  
Fecha de Ingreso: diciembre-2011
Mensajes: 10
Antigüedad: 12 años, 11 meses
Puntos: 0
Guardar JSON en variable local

Código Javascript:
Ver original
  1. var dt;
  2. $.getJSON('/data/es2015.json', function(data) {
  3. dt = data;
  4. },'json');
El caso es que tengo un archivo JSON y quiero guardar ese JSON en una variable Javascript para manipularlo después.
El caso es que no se me guarda, pero si hago cualquier cosa dentro de data sí me funciona el JSON.
  #2 (permalink)  
Antiguo 14/03/2016, 12:21
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Guardar JSON en variable local

¿A qué te refieres con "después" ?

Si es en el mismo script, podrías declarar la variable global y accederla desde cualquier punto.

Si es para usarla en otra ejecución, deberías plantearte almacenarla de forma permanente con localstorage
  #3 (permalink)  
Antiguo 15/03/2016, 09:48
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: Guardar JSON en variable local

El comportamiento que obtienes es lógico puesto que estás realizando una petición asíncrona y tú pretendes trabajar con la respuesta obtenida pero de manera síncrona. Sabiendo esto, solo te queda ejecutar tus instrucciones en el callback del método $.getJSON() o almacenando en una variable el resultado de la ejecución del método y, usando el método $.when(), ejecutarías tus instrucciones en el callback del método .then(). Sería algo muy similar a la primera opción, con la diferencia de que podrías ejecutar tus instrucciones en otro bloque de código e incluso volver a ejecutarlo más de una vez.

Código Javascript:
Ver original
  1. var json = $.getJSON('/data/es2015.json');
  2.  
  3. //Otras instrucciones que no vayan a utilizar el resultado de la petición
  4.  
  5. $.when(json).then(function(data){
  6.     //Tus instrucciones
  7. });

Incluso puedes hacerlo directamente con el método .done():
Código Javascript:
Ver original
  1. var json = $.getJSON('/data/es2015.json');
  2.  
  3. //Otras instrucciones que no vayan a utilizar el resultado de la petición
  4.  
  5. json.done(function(data){
  6.     //Tus instrucciones
  7. });

Para saber más sobre estos métodos y otros que puedes utilizar, lee esto.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: funcion, javascript, js, json, local, variable
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 07:09.