Aplatir est ce dont un imbriqué a besoin avant de pouvoir rencontrer quelque chose qui n'a pas de concept d'imbrication : un fichier d'environnement, une colonne de feuille de calcul, un catalogue de traduction, tout ce qui est construit à partir de paires clé-valeur sans structure propre.
Utilisation de l'aplatisseur JSON
Choisissez une direction et un style de chemin, car il n'y a pas de standard
unique pour la manière dont un chemin aplati doit être écrit. Trois formes
sont proposées, a.b.0, a/b/0 et a.b[0], et l'outil indique laquelle
est utilisée plutôt que d'en choisir une silencieusement.
Aplatissement de
{"user":{"name":"Ana","tags":["a","b"]},"empty":{}}
avec le style pointé retourne :
{
"user.name": "Ana",
"user.tags.0": "a",
"user.tags.1": "b",
"empty": {}
}
Les clés imbriquées deviennent des chemins pointés, les éléments du tableau recouvrent leur index ajouté, et l'objet vide est conservé comme une valeur en soi plutôt que de disparaître, car sans lui il n'y aurait rien à donner un chemin et le document ne survivrait pas au voyage retour.
Deux cas genuinely ambigus, gérés ouvertement
Une clé qui contient déjà le caractère séparateur produirait un chemin
que personne ne pourrait relire correctement, donc l'outil la refuse par
nom : une clé comme "a.b" dans le style pointé est rejetée avec un
message nommant la clé et suggérant un style de chemin différent, plutôt
que de produire silencieusement un chemin cassé.
Dans l'autre sens, l'aplati, un segment de chemin composé uniquement de chiffres pourrait signifier soit un index de tableau soit une clé d'objet qui est numérique, et rien dans un document aplati ne l'indique. “Les chiffres sont des index de tableau” est un basculement exactement pour cette raison : deviner à tort transforme un objet avec des clés en années en un tableau avec des milliers de vides.
Voyage retour
L'aplati de l'exemple ci-dessus, avec le même style de chemin, retourne le document original exact : l'objet imbriqué, le tableau à deux éléments dans son ordre original, et l'objet vide conservé plutôt que supprimé. Ce voyage retour est la vraie preuve que les points et index d'un style de chemin ont été lus correctement, car une hypothèse fausse sur l'indexation des tableaux n'apparaît généralement que lorsque vous reconvertissez et comparez avec l'original.
Garder les conteneurs vides
Désactiver cela supprime les objets et tableaux vides complètement plutôt que de les conserver comme des entrées aplaties, ce qui est utile lorsque la forme plate est dirigée vers un endroit qui ne peut pas du tout contenir une valeur vide, comme certains formats de fichier d'environnement.