json_decode(string)
Argument La description string La chaîne de format JSON que vous transmettez à la fonction de décodage
Résultats:
ds_map id or -1 if it fails
La description
JSON (JavaScript Object Notation) est un format léger d'échange de données facile à lire et à écrire pour les personnes et les machines. Il est construit sur deux structures de base:
Avec cette fonction, vous pouvez décoder un morceau de JSON et le convertir en ds_map, prêt à l'emploi dans GameMaker Studio 2. Si le JSON à décoder nécessite une hiérarchie de listes et de cartes au sein de la ds_map centrale, celles-ci sont également décodées et créées pour vous, en utilisant les règles suivantes (notez que ces règles s'appliquent uniquement à la structure de niveau supérieur):
- Json est une valeur unique - retourne un ds_map avec une seule entrée "default" qui est la valeur
- Json est un tableau d'objets ou de valeurs - retourne un fichier ds_map avec une seule entrée "default" qui est une liste ds_list des objets ou des valeurs
- Json est un objet - renvoie un ds_map qui contient les entrées d'objet
REMARQUE: Lors du décodage de tableaux, il existe une carte avec la clé "par défaut" UNIQUEMENT lorsqu'un tableau est la structure de niveau supérieur et UNIQUEMENT pour ce tableau de niveau supérieur. Les listes internes décodent directement en ds_lists sans être incluses dans un ds_map.
Normalement, vous savez quelles touches le JSON décode, mais si ce n'est pas le cas, vous pouvez utiliser le ds_map_size, ds_map_find_first et ds_map_find_next fonctions pour analyser la carte et obtenir les informations nécessaires.NOTE: GameMaker Studio 2 crée les ds_maps et listes nécessaires à partir du JSON, et pour le nettoyage, il suffit de supprimer la carte ou la liste de niveau supérieur et GameMaker Studio 2 supprimera automatiquement de la mémoire toutes les cartes et listes ci-dessous.
Exemple:
var resultMap = json_decode(requestResult);
var list = ds_map_find_value(resultMap, "default");
var size = ds_list_size(list);
for (var n = 0; n < ds_list_size(list); n++;)
{
var map = ds_list_find_value(list, n);
var curr = ds_map_find_first(map);
while (is_string(curr))
{
global.Name[n] = ds_map_find_value(map, "name");
curr = ds_map_find_next(map, curr);
}
}
ds_map_destroy(resultMap);Le code ci-dessus va décoder une chaîne JSON et l'analyser pour générer un tableau global.