Programmation JavaScript/Notation JSON

Un livre de Wikilivres.
Aller à : navigation, rechercher
Programmation JavaScript
Programmation JavaScript
Sommaire
  1. Introduction 100 percent.svg
  2. Présentation
  3. Syntaxe 50%.svg
    1. Ligne d'instruction 100 percent.svg
    2. Ordre d'évaluation 100 percent.svg
    3. Bloc d'instructions 100 percent.svg
    4. Identificateurs 100 percent.svg
    5. Expression littérale 100 percent.svg
    6. Commentaire 100 percent.svg
    7. Mots réservés et constantes 100 percent.svg
    8. Variables 100 percent.svg
    9. Opérateurs 100 percent.svg
    10. Structures de contrôle 75%.svg
    11. Fonctions utilisateur 100 percent.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 100 percent.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. String 25%.svg
    13. Element 25%.svg
    14. RegExp 00%.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. Frameworks
    1. Dojo
      1. Hello World
      2. Widgets
      3. Ressources
    2. jQuery
    3. Node.js
    4. React
  9. Tests
    1. Ava
    2. Jest
    3. Selenium
  10. Débogage
  11. Références25%.svg
Modifier ce modèle ce sommaire


Logo JSON

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.

Contrairement sa principale alternative, le XML, cette notation ne comprend aucun en-tête et est toujours encodée en UTF8.

Tableau[modifier | modifier le wikicode]

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 | modifier le wikicode]

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 | modifier le wikicode]

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"
    }
];

Voir aussi[modifier | modifier le wikicode]

Convertisseurs JSON :

Bases de données JSON :