jsln (el json para las ds_list ^^)

Publicado por kostra, Abril 16, 2022, 10:20:31 PM

Tema anterior - Siguiente tema

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

kostra

Nombre del creador: Kostrón Sobakón
Breve descripción de su función: Nunca te ha pasado que quieres transformar en string una ds_list, pero el json solo sirve para ds_maps?, te da pereza tener que ingeniartelas cómo hacerlo? para qué, si ya lo hice yo por ti!! c:
Versión GM utilizada: GMS2.. pero meh, seguro sirve para todos o casi todos los GM
Modo de uso:
En el encoder, como argumento hay que poner una ds_list y devuelve un json (un ds_map transformado en string)
En el decoder, como argumento hay que poner un json (string que representa un ds_map... obviamente un json sacado de un jsln_encoder, si no no sirve!!!)
CódigoS (son 2, el encoder y el decoder):
[gml]
#region jsln encode
   function jsln_encode(_ds_list) {
      var _list = ds_list_create();
      ds_list_copy(_list,_ds_list);
      var _map = ds_map_create();
         ds_map_add_list(_map,"list",_list );
         var _json = json_encode(_map);
      ds_map_destroy(_map);
         
      return _json;
   }
#endregion
#region jsln decode
   function jsln_decode(_json) {
      var _map = json_decode(_json);
         var _ds_list = ds_list_create();
         ds_list_copy(_ds_list,_map[? "list"]);
      ds_map_destroy(_map);

      return _ds_list;
   }
#endregion
[/gml]

Adaptaciones a los antiguos scripts...
[gml]
///jsln_encode(ds_list)
var _list = ds_list_create();
ds_list_copy(_list,argument[0]);
var _map = ds_map_create();
   ds_map_add_list(_map,"list",_list );
   var _json = json_encode(_map);
ds_map_destroy(_map);
         
return _json;
[/gml]
[gml]
///jsln_decode(json)
var _json = argument[0];
var _map = json_decode(_json);
   var _ds_list = ds_list_create();
   ds_list_copy(_ds_list,_map[? "list"]);
ds_map_destroy(_map);

return _ds_list;
[/gml]

Cualquier duda, pss pregunten
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

kostra

ACTUALIZADO!
-Tenía un bug grave que podía hacerte perder la info de tus listas. Solucionado.
[spoiler="ola k ase clickarme o k ase"]la imagen no se quita xD
[/spoiler]

Powered by EzPortal
SMF spam blocked by CleanTalk