Programmation JavaScript/Notation JSON

Un livre de Wikibooks.
Aller à : Navigation, rechercher
Programmation JavaScript
Programmation JavaScript
Sommaire
  1. Introduction 100%.svg
  2. Présentation
  3. Syntaxe 50%.svg
    1. Ligne d'instruction 100%.svg
    2. Ordre d'évaluation 100%.svg
    3. Bloc d'instructions 100%.svg
    4. Identificateurs 100%.svg
    5. Expression littérale 100%.svg
    6. Commentaire 100%.svg
    7. Mots réservés et constantes 100%.svg
    8. Variables 100%.svg
    9. Opérateurs 100%.svg
    10. Structures de contrôle 75%.svg
      1. if else
      2. ? :
      3. switch
      4. for
      5. while
      6. do
    11. Fonctions utilisateur 100%.svg
    12. Évènement 75%.svg
  4. Objets prédéfinis 00%.svg
    1. window 25%.svg
    2. document 25%.svg
    3. navigator 25%.svg
    4. Array (tableaux) 100%.svg
    5. Boolean 00%.svg
    6. Date 25%.svg
    7. Error 00%.svg
    8. Function 00%.svg
    9. Math 25%.svg
    10. Number 25%.svg
    11. Object 00%.svg
    12. RegExp 00%.svg
    13. String 25%.svg
  5. Fonctions prédéfinies
  6. Mise en œuvre
  7. Programmation avancée
    1. Opérateurs de bits 00%.svg
    2. Programmation objet 00%.svg
    3. Gestion d'évennements 00%.svg
    4. Exceptions et erreurs 00%.svg
    5. Interface DOM 00%.svg
    6. Objets Microsoft 00%.svg
    7. Applets Java 00%.svg
    8. Notation JSON 00%.svg
    9. AJAX 00%.svg
  8. Debuggage
  9. Exemples commentés
  10. Références00%.svg
    1. Évènements
    2. Liens
Modifier ce modèle ce sommaire


La notation objet du langage Javascript JSON (JavaScript Object Notation en anglais) permet de déclarer des objets en donnant la valeur des membres. Cette notation concerne également les tableaux qui sont considérés comme des objets.

Elle abrège la déclaration de données en permettant de donner toutes les valeurs d'un objet ou d'un tableau en une seule expression. Cette expression peut, par exemple, être passée en paramètre d'une fonction.

Tableau [modifier]

Un tableau est en réalité une forme spéciale d'objet. Pour preuve, la fonction typeof(...) retourne le type "object" quand on lui passe un tableau.

La syntaxe abrégée pour déclarer le contenu d'un tableau utilise une série de valeurs entre crochets :

[ valeur, valeur... ]

valeur est une expression dont le type peut être quelconque (entier, chaîne de caractères, tableau, objet, ...).

Exemple :

var fruits = [ "pomme", "orange", "pamplemousse" ];

Équivalent sans la notation :

var fruits = new Array();
fruits[0] = "pomme";
fruits[1] = "orange";
fruits[2] = "pamplemousse";

Variante :

var fruits = new Array();
fruits.push( "pomme" );
fruits.push( "orange" );
fruits.push( "pamplemousse" );

Il est possible d'imbriquer les tableaux, c'est à dire déclarer un tableau de tableaux :

var parfums_glaces = [
    [ "chocolat", "vanille" ],
    [ "fraise" ],
    [ "framboise", "cassis" ]
];

Tous les éléments d'un tableau ne sont pas obligatoirement du même type :

var article = [ "Livre", 21.99 ]; // nom et prix

Objet [modifier]

Un objet Javascript est en réalité une table associant un nom (attribut ou clé) à une valeur.

Exemple :

var article = new Object();
article.nom = "Livre";
article.prix_unitaire = 21.99;
article.quantite = 2;

Variante :

function Article(nom, prix_unitaire, quantite)
{
    this.nom = nom;
    this.prix_unitaire = prix_unitaire;
    this.quantite = quantite;
    this.resume = function(){
        return this.nom+" x "+this.quantite+" à "+this.prix_unitaire+
           " l'unité coûte(nt) "+( this.quantite*this.prix_unitaire );
    }
    return this;
}
var article = new Article( "Livre", 21.99, 2);

Pour accéder au nom de l'article :

alert( "L'article est : " + article.nom ); // syntaxe objet
alert( "L'article est : " + article["nom"] ); // syntaxe table associative

La notation abrégée utilise une série d'association nom-valeur entre accolades :

{ nom : valeur , nom : valeur , ... }

Exemple :

var article = {
    "nom" : "Livre",
    "prix_unitaire" : 21.99,
    "quantite" : 2,
    "resume" : function(){
        return this.nom+" x "+this.quantite+" à "+this.prix_unitaire+
           " l'unité coûte(nt) "+( this.quantite*this.prix_unitaire );
    }
};

Le nom peut se passer des guillemets s'il suit la syntaxe des identificateurs :

var article = {
    nom : "Livre",
    prix_unitaire : 21.99,
    quantite : 2,
    resume : function(){
        return this.nom+" x "+this.quantite+" à "+this.prix_unitaire+
           " l'unité coûte(nt) "+( this.quantite*this.prix_unitaire );
    }
};

Imbrications [modifier]

Il est possible de déclarer des tableaux d'objets, des objets contenant des tableaux ou d'autres objets, ...

Exemple complexe :

var commandes = [
    { "client": "Jean",
      "articles": [ 
           { "nom": "Livre", "quantite": 2, "prix_unitaire": 21.99 } ,
           { "nom": "Stylo", "quantite": 4, "prix_unitaire": 0.79 }
      ],
      "mode_paiement": "chèque"
    },
    { "client": "Pierre",
      "articles": [ 
           { "nom": "Livre", "quantite": 1, "prix_unitaire": 21.99 } ,
           { "nom": "Trombones", "quantite": 50, "prix_unitaire": 0.05 }
      ]
      "mode_paiement": "espèces"
    }
];