JSON est l'un des formats les plus populaires pour représenter les données sous forme de texte. Par exemple, JSON est utilisé pour transférer des données entre le frontend et le backend, dans les fichiers de configuration, dans les jeux, dans les éditeurs de texte et dans de nombreux autres domaines. En tant que programmeur, vous rencontrerez certainement JSON.

Présentation de la syntaxe

Listons les types de données disponibles en JSON :

  1. Les chaînes sont des caractères entre guillemets :

    "kwerty"
    "125 + 42"
    "G"

    Les caractères spéciaux sont échappés par une barre oblique :

    "première ligne\ndeuxième ligne"
    "Il a dit \"Bonjour !\""
  2. Nombres, y compris les nombres négatifs et réels. Pas de guillemets :

    18 -333 17,88 1,2e6
  3. Les valeurs booléennes sont vrai / faux (sans guillemets).

  4. null est la valeur standard pour représenter "rien". Aucun guillemet n'est utilisé ici.

  5. Array - Ce type peut contenir des valeurs de tout autre type. Il est entouré de crochets. Ses éléments sont séparés par des virgules :

    ["Code", "Gym", "CodeGym", "¯\_(ツ)_/¯"]
    [vrai, vrai, faux, vrai, faux, faux, faux, faux, faux]
    [[1, 2], [3, 999, 4, -5], [77]]

    Le dernier exemple est un tableau de tableaux

  6. Objet — Ce type complexe est le plus couramment utilisé. Il contient des paires clé-valeur, où la valeur peut être l'un des types répertoriés ci-dessus, ainsi que d'autres objets. Il est entouré d'accolades et les paires sont séparées par des virgules :

    
    {
     "name": "Dale",
     "age": 7
    }
    

Représenter un objet Java en tant que JSON

Prenons maintenant un objet Java et voyons à quoi il ressemble en tant que JSON.

Commençons par définir une classe :


public class Human {
	String name;
	boolean male;
	int age;
	Set<Human> parents;

	public Human(String name, boolean male, int age) {
    	    this.name = name;
    	    this.male = male;
    	    this.age = age;
	}
}

Créons maintenant notre objet :


	Human father = new Human("Peter", true, 31);
	Human mother = new Human("Mary", false, 28);
	mother.parents = new HashSet<>();
	Human son = new Human("Paul", true, 7);
	son.parents = Set.of(father, mother);

Et maintenant essayons de représenter lefilsobjet le plus précisément possible au format JSON :

{
 "name" : "Paul",
 "male" : true,
 "age" : 7,
 "parents" : [
 {
   "name" : "Peter",
   "male" : true,
   "age" : 31,
   "parents" : null
 },
 {
   "name" : "Maria",
   "male" : false,
   "age" : 28,
   "parents" : null
 }
]
}

Commentaires en JSON

Tout ici est exactement le même qu'en Java. Il existe deux types de commentaires : // et /*...*/. J'espère que je n'ai pas besoin de vous rappeler en quoi ils diffèrent?