1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
| // Réponse basée sur ce qu'on a vu dans le post original
var response = {
"header": {
"statut": 200,
"message": "ok"
},
"etablissement": {
"siren": "398607333",
"nic": "00059",
"siret": "39860733300059",
"statutDiffusionEtablissement": "O",
"dateCreationEtablissement": "2015-01-09",
"trancheEffectifsEtablissement": "00",
"anneeEffectifsEtablissement": "2016",
"activitePrincipaleRegistreMetiersEtablissement": "5610CR",
"dateDernierTraitementEtablissement": "2018-09-29T12:24:50",
"etablissementSiege": false,
"nombrePeriodesEtablissement": 4,
"uniteLegale": {
"etatAdministratifUniteLegale": "C",
"statutDiffusionUniteLegale": "O",
"dateCreationUniteLegale": "1994-10-10",
"categorieJuridiqueUniteLegale": "1000",
"denominationUniteLegale": null,
"sigleUniteLegale": null,
"denominationUsuelle1UniteLegale": null,
"denominationUsuelle2UniteLegale": null,
"denominationUsuelle3UniteLegale": null,
"sexeUniteLegale": "M",
}
}
};
console.log('etablissement', response.etablissement);
// On crée une valeur sur base de notre réponse
// On utilise goclone() pour copier notre variable sans référence (voir fonction en bas)
var flattend = goclone(response.etablissement);
// Pour chaque sous-élément, on va créer une valeur préfixée dans notre valeur aplatie
// Si on avait plusieurs sous-éléments, il serait possible de faire une boucle qui vérifiée si le sous-élément est un object, et si oui le prefixer et le parcourir
for (const ul in response.etablissement.uniteLegale) {
// On préfixe nos index et on met les valeurs
flattend['uniteLegale_' + ul] = response.etablissement.uniteLegale[ul];
}
// On supprime le sous-élément parcouru de notre objet final
delete flattend.uniteLegale;
console.log('flattend ', flattend);
function goclone(source) {
if (Object.prototype.toString.call(source) === '[object Array]') {
var clone = [];
for (var i = 0; i < source.length; i++) {
clone[i] = goclone(source[i]);
}
return clone;
} else if (typeof (source) == "object") {
var clone = {};
for (var prop in source) {
if (source.hasOwnProperty(prop)) {
clone[prop] = goclone(source[prop]);
}
}
return clone;
} else {
return source;
}
} |