Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/06/2011, 11:54
Avatar de Aijoona
Aijoona
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Buenos Aires
Mensajes: 779
Antigüedad: 13 años
Puntos: 343
Respuesta: Deserializar un string con JS

Version compatible con implementaciones modernas de JavaScript (que implementen Array.reduce más precisamente):

Código Javascript:
Ver original
  1. var t = "a[]=1&a[]=2&a[]=3&a[]=5&country=PE&otravariable=2011";
  2.  
  3. function d(str) {
  4.     return str.split('&').reduce(function(res, item) {
  5.         item = item.split('=');
  6.         var
  7.             key = item[0],
  8.             value= item[1] || null;
  9.  
  10.         if(key.indexOf('[')) {  
  11.             key = key.replace(/(\[|\])/g, '');          
  12.             (res[key] = res[key] || []).push(value);
  13.         } else {
  14.             res[key] = value;
  15.         }
  16.  
  17.         return res;
  18.     }, {});    
  19. }
  20.  
  21. var deserialized = d(t);

Obviamente es una version básica que no incluye recursividad.
__________________
blog | @aijoona