Json

Un Json (JavaScript Object Notation) est un format de données textuelles dérivé de la notation des objets du langage JavaScript.

Décoder un JSON n'est pas forcément facile ... firefox permet de visualiser la structure, comme l'outil excel utilisant ScriptControl et diverses fonctions *.

1-

Il faut d'abord connaître la structure employée, soit via une lecture par firefox, soit à l'aide de l'outil suivant

23decoder-json.xlsm (26.29 Ko)

2-

Les informations sont alors accessibles en écrivant :

Objet.SousObjet.SousSousObjet.donnee

Mais ce n'est pas suffisant : le "protoypage" classique permet d' "adresser" des contenus identifiés par

  • une variable,
  • un indice,
  • une clé commençant par un chiffre,
  • ou un mot réservé par excel qui va en modifier la casse (name devient Name par exemple en VBA).
par le biais de ce code :
.AddCode "Object.prototype.element=function( i ) { return this[i] } ; "

en effet :

data.records.i.fields.name ' produit une erreur car i est une variable et fields et name des mots réservés
data.records.element(i).element("fields").element("name") ' est la bonne écriture

2bis-

Une autre notation est d'utiliser la fonction

VBA.CallByName(JsonObject, clé, VbGet)

expliquée par Pierre56 ici https://forum.excel-pratique.com/viewtopic.php?p=838071#p838071

3-

Il faut aussi pour les objets à occurrences multiples, connaître le nombre d'occurrences avec cette fonction :

.AddCode "function N(jsonObj){return jsonObj.length;} "

Exemple donné ci-dessous.

(*) à noter une difficulté qui est que certains JSON contiennent des clés mais dont la valeur a été attribuée est null comme celui-ci

. Dans ce cas cet élément est considéré comme objet sans être pour autant accessible car il produit une erreur.

Rechercher des sujets similaires à "json"