JSON imbriqué
Fait partie de la section Logique & Flux du Journey JavaScript de Coddy — leçon 23 sur 65.
Un objet JSON peut contenir un autre objet JSON à l'intérieur. Il peut être imbriqué à l'infini. Par exemple :
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Pour accéder à une clé imbriquée, nous écririons :
userData.user.name
userData.user.address.location
// Et ainsi de suiteDéfi
FacileCréez une fonction nommée calculateRestaurantBill qui prend en entrée un objet JSON représentant une commande de restaurant. Chaque clé de l'objet est le nom d'un plat, et chaque valeur est un autre objet contenant :
- price (nombre)
- quantity (nombre)
- isSpecialOffer (booléen)
si vrai, il y a une remise de 20 % sur ce plat. La fonction doit :
- Calculer le montant total de la facture
- Appliquer toutes les remises d'offres spéciales
L'objet retourné contient :
- totalBeforeDiscount
- totalDiscount
- finalTotal
(Toutes les valeurs sont arrondies à 2 décimales)
Aide-mémoire
Les objets JSON peuvent être imbriqués à l'infini :
const userData = {
"user": {
"name": "Kim",
"address": {
"city": "Springfield",
"zip": 12345,
"location": {
"coordinates": {
"latitude": 42.1234,
"longitude": -71.5678
}
}
}
}
}Accédez aux propriétés imbriquées en utilisant la notation par point :
userData.user.name
userData.user.address.location
// Et ainsi de suiteEssayez vous-même
function calculateRestaurantBill(order) {
// Écrivez le code ici
return {
totalBeforeDiscount: Number(totalBeforeDiscount.toFixed(2)),
totalDiscount: Number(totalDiscount.toFixed(2)),
finalTotal: Number(finalTotal.toFixed(2))
};
}
// N'écrivez rien en dehors de la fonctionCette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Logique & Flux
1Les chaînes de caractères en profondeur
Fondamentaux des chaînesParcourir les chaînesTemplate LiteralsMéthodes des chaînesRécapitulatif - String Weaver4JSON Partie 2
Itérer sur du JSONJSON imbriquéChaînage optionnel JSONCopie superficielle et profondeRécapitulatif - Magasin de vélosRécapitulatif - Système solaire7Système de gestion de bibliothèque
Présentation du projetAjouter des livres2Tableaux multidimensionnels
Bases des tableaux 2DAccès aux éléments d'un tableau 2DBoucles imbriquées et tableaux 2DRécapitulatif - Tableaux 2DAddition et soustraction de matricesTableaux irréguliers (Jagged Arrays)Tableaux 3D et au-delàModèles courants de tableaux 2DRécapitulatif - Tout sur les tableaux3JSON Partie 1
Qu'est-ce qu'un JSON ?Vérifier si une clé existeMéthodes d'objetL'opérateur Spread Partie 1L'opérateur Spread Partie 2Supprimer des clésRécapitulatif - Manipuler les clés JSON