Connaître le terrain avant de couper
La chirurgie commence par l'imagerie. Un document JSON de quelque profondeur cache sa structure à la lecture distraite — la même clé à deux niveaux signifie deux choses, un tableau là où un objet était attendu casse la règle qu'on s'apprêtait à écrire — et l'inventaire des clés change ce terrain caché en liste sur papier. Chaque chemin paraît une fois, les surprises affleurent avant qu'on écrive des règles contre elles, et l'inventaire devient la ligne de base de tout le reste — régénérez-le après chaque opération, et l'écart entre inventaires est le reçu honnête de l'opération.
Deux dialectes pour adresser
L'adressage JSON vient en deux registres, et les confondre est l'impôt classique du débutant. Le pointeur — RFC 6901 — est une adresse exacte — /data/items/0/price nomme un nœud, résout ou échoue, et c'est le dialecte que JSON Patch lui-même parle. La requête par chemin — façon JSONPath ou JMESPath — est une recherche — jokers, filtres, projections qui rendent des ensembles de nœuds et ne coûtent rien à essayer. La discipline qui les tient en ordre est simple — explorer par chemins, opérer par pointeurs — car une opération qui nomme sa cible avec précision est une opération dont le résultat se prédit.
Les patchs sont la piste écrite
Éditer un fichier JSON directement produit un résultat ; appliquer un patch RFC 6902 produit un résultat et un registre. Le patch est une séquence ordonnée d'opérations nommées — ajouter, retirer, remplacer, déplacer — ciblant chacune un pointeur, ce qui le rend lisible avant de tourner, passable en revue comme un diff, rejouable sur des entrées fraîches et archivable comme piste d'audit de ce qui fut fait aux données et dans quel ordre. Le renommage suit la même logique au niveau des clés — une règle qui épouse un motif s'applique partout où le motif vit, et nulle part ailleurs — sans la quarante-et-unième édition manuelle découverte manquante quand les quarante premières avaient l'air bien.
Aplatir pour partir, désaplatir pour revenir
Les lignes plates de paires clé-valeur sont la langue franche des tableurs, des outils de diff et de la moitié du monde des pipelines ; le JSON imbriqué est la langue maternelle des API. L'aplatisseur jette le pont au départ — l'imbrication contractée en clés jointes par délimiteur — et le désaplatisseur le jette au retour. La garantie qui compte est l'aller-retour — aplatir, désaplatir, comparer en profondeur à l'original, et la structure est prouvée intacte. L'unique précondition est le contrôle de collisions — une clé contenant le délimiteur ne survivra pas au voyage, donc le séparateur se choisit contre les noms de clés réellement présents, pas par habitude.
Où ce workflow s'arrête
Cette page remodèle la structure et prouve le remodelage — elle ne requête pas de valeurs, ne convertit pas entre formats, ne certifie pas une forme. Tirer des données du JSON par requête est l'affaire du workflow d'extraction et transformation ; formater, valider et fusionner des documents sont les bilans de santé du workflow d'utilitaires ; convertir le JSON en YAML, CSV ou BSON est le workflow de conversion ; et changer une structure en types TypeScript ou en schema est le business des workflows de code typé et d'inférence de schema. Coupez ici, vérifiez l'aller-retour, et remettez le document au voisin qui possède la question suivante.