Transformer des données récursives hiérarchiques vers un format CSV plat
Mettez à plat une structure JSON hiérarchique relative aux employé·es dans un format CSV, à l'aide des clauses RECURSIVE ON et PARENT du langage Data Shaping Query Language.
Pourquoi et quand exécuter cette tâche
Dans cet exemple, une structure JSON hiérarchique contient des données relatives aux employé·es, organisées en fonction des différentes hiérarchies, avec un·e président·e au niveau supérieur et des équipes imbriquées de managers et d'employé·es. Vous allez aplatir cette structure en un fichier CSV contenant des colonnes pour le nombre, le nom, l'intitulé de poste, l'ID du manager et le salaire de chaque employé·e.
Le JSON d'entrée comprend une organisation hiérarchique avec des éléments team imbriqués, comme suit :
{
"employees": [
{
"id": "E001",
"name": "Alice Johnson",
"role": "President",
"salary": 150000,
"team": [
{
"id": "E002",
"name": "Bob Smith",
"role": "VP Engineering",
"salary": 120000,
"team": [
{
"id": "E003",
"name": "Carol Williams",
"role": "Engineering Manager",
"salary": 95000,
"team": [
{
"id": "E004",
"name": "David Brown",
"role": "Senior Developer",
"salary": 85000,
"team": []
},
{
"id": "E005",
"name": "Emma Davis",
"role": "Developer",
"salary": 75000,
"team": []
}
]
}
]
},
{
"id": "E006",
"name": "Frank Miller",
"role": "VP Sales",
"salary": 115000,
"team": [
{
"id": "E007",
"name": "Grace Lee",
"role": "Sales Manager",
"salary": 85000,
"team": [
{
"id": "E008",
"name": "Henry Chen",
"role": "Sales Representative",
"salary": 65000,
"team": []
}
]
}
]
}
]
}
]
}La sortie comprend une structure CSV plate avec les colonnes suivantes :
EMPNO,ENAME,JOB,MGR,SALProcédure
Résultats
EMPNO,ENAME,JOB,MGR,SAL
E001,Alice Johnson,President,,150000
E002,Bob Smith,VP Engineering,E001,120000
E003,Carol Williams,Engineering Manager,E002,95000
E004,David Brown,Senior Developer,E003,85000
E005,Emma Davis,Developer,E003,75000
E006,Frank Miller,VP Sales,E001,115000
E007,Grace Lee,Sales Manager,E006,85000
E008,Henry Chen,Sales Representative,E007,65000