Aplatisseur/Désaplatisseur JSON
Aplatissez les objets JSON imbriqués en clés de notation pointée (p. ex., user.address.city) et désaplatlissez-les. Séparateur et gestion des tableaux configurables.
Flattened Output
12 keys{
"user.id": 42,
"user.name": "Alice",
"user.roles.0": "admin",
"user.roles.1": "editor",
"user.address.city": "Berlin",
"user.address.country": "Germany",
"user.address.zip": "10115",
"user.preferences.theme": "dark",
"user.preferences.notifications.email": true,
"user.preferences.notifications.sms": false,
"meta.version": "1.0",
"meta.created": "2024-01-15"
}Comment utiliser Aplatisseur/Désaplatisseur JSON
- 1Collez un objet JSON imbriqué dans l'entrée.
- 2Choisissez Flatten pour convertir en clés de notation pointée, ou Unflatten pour convertir en sens inverse.
- 3Configurez le caractère séparateur et copiez le résultat.
ZenovayAnalytics
Voyez qui est sur votre site en ce moment.
- Suivi des visiteurs en temps réel
- Vie privée d'abord, sans bandeau cookies
- Installé en deux minutes
Outils connexes
Formateur et Validateur JSON
Formatez, validez et embellissez les données JSON avec la coloration syntaxique et la détection d'erreurs.Décodeur JWT
Décodez et inspectez les jetons JWT. Consultez l'en-tête, la charge utile et vérifiez les signatures.Encodeur/Décodeur Base64
Encodez du texte en Base64 ou décodez Base64 en texte. Supporte UTF-8 et les données binaires.Encodage / Décodage URL
Encodez ou décodez les composants URL. Traitez les caractères spéciaux, les chaînes de requête et les URL complètes.Questions fréquemment posées
Qu'est-ce que l'aplatissement JSON et quand est-ce utile ?▾
L'aplatissement JSON convertit les objets imbriqués en un objet à un seul niveau où les clés imbriquées sont jointes avec un séparateur (généralement un point). Exemple : {"user": {"name": "Alice", "address": {"city": "Berlin"}}} → {"user.name": "Alice", "user.address.city": "Berlin"}. Cas d'usage : aplatissement pour le stockage en colonnes de base de données (migration NoSQL vers SQL), simplification des réponses API profondément imbriquées, alimentation de pipelines d'apprentissage automatique qui attendent des données tabulaires, indexation de documents Elasticsearch, et envoi d'événements d'analyse avec des propriétés aplaties.
Comment fonctionne l'aplatissement de tableau ?▾
Les tableaux sont aplatis en utilisant leur index comme partie de la clé. Exemple : {"tags": ["js", "ts"]} → {"tags.0": "js", "tags.1": "ts"} avec séparateur par point, ou {"tags[0]": "js", "tags[1]": "ts"} avec notation entre crochets. Tableaux imbriqués : {"matrix": [[1,2],[3,4]]} → {"matrix.0.0": 1, "matrix.0.1": 2, "matrix.1.0": 3, "matrix.1.1": 4}. La reconstruction des tableaux lors du dégroupement nécessite de connaître les clés qui sont des indices numériques. Certains outils préservent la structure du tableau lors du dégroupement ; d'autres convertissent en objets.
Quels séparateurs sont couramment utilisés pour les clés aplaties ?▾
Point (.) : le plus courant, intuitif, conflits avec les clés contenant des points. Tiret bas (_) : évite les conflits avec les points, utilisé dans certaines conventions de nommage des colonnes de base de données. Double tiret bas (__) : évite les conflits avec les tirets simples, utilisé dans les variables d'environnement Django et les valeurs des graphiques Helm. Barre oblique (/) : utilisée dans JSON Pointer (RFC 6901) — "/user/address/city". Deux-points (:) : utilisé dans certains systèmes de configuration. Meilleure pratique : choisissez un séparateur qui n'apparaît pas dans vos noms de clés existants. Évitez les points si les clés pourraient contenir des noms de paquets ou des noms de domaine.
Qu'est-ce que JSON Pointer (RFC 6901) ?▾
JSON Pointer est une norme IETF (RFC 6901) pour référencer une valeur spécifique dans un document JSON. Format : /key/subkey/index. Document racine : "". Premier élément du tableau : "/0". Valeur imbriquée : "/user/address/city". Caractères spéciaux : "~0" représente "~", "~1" représente "/". Utilisé dans : JSON Patch (RFC 6902) pour les mises à jour partielles, JSON Schema $ref, références de chemin OpenAPI. Exemple : PATCH avec {"op": "replace", "path": "/user/address/city", "value": "London"} change une valeur imbriquée sans remplacer l'ensemble du document.
Comment puis-je aplatir JSON en JavaScript sans bibliothèque ?▾
function flatten(obj, prefix = "", sep = ".") { return Object.entries(obj).reduce((acc, [key, val]) => { const newKey = prefix ? prefix + sep + key : key; if (val && typeof val === "object" && !Array.isArray(val)) { Object.assign(acc, flatten(val, newKey, sep)); } else if (Array.isArray(val)) { val.forEach((item, i) => { if (item && typeof item === "object") { Object.assign(acc, flatten(item, newKey + sep + i, sep)); } else { acc[newKey + sep + i] = item; } }); } else { acc[newKey] = val; } return acc; }, {}); }. Pour l'inverse (dégroupement), divisez chaque clé sur le séparateur et reconstruisez la structure imbriquée.