JSON è uno dei formati più popolari per rappresentare i dati come testo. Ad esempio, JSON viene utilizzato per trasferire dati tra il frontend e il backend, nei file di configurazione, nei giochi, negli editor di testo e in molte altre aree. Come programmatore, incontrerai sicuramente JSON.

Introduzione alla sintassi

Elenchiamo i tipi di dati disponibili in JSON:

  1. Le stringhe sono tutti i caratteri racchiusi tra virgolette:

    "kwerty"
    "125+42"
    "G"

    I caratteri speciali sono sfuggiti con una barra:

    "prima riga\nseconda riga"
    "Ha detto, \"Ciao!\""
  2. Numeri, compresi i numeri negativi e reali. Nessuna citazione:

    18 -333 17,88 1,2e6
  3. I valori booleani sono true / false (senza virgolette).

  4. null è il valore standard per rappresentare "nulla". Qui non vengono utilizzate virgolette.

  5. Array - Questo tipo può contenere valori di qualsiasi altro tipo. È racchiuso tra parentesi quadre. I suoi elementi sono separati da virgole:

    ["Codice", "Palestra", "CodicePalestra", "¯\_(ツ)_/¯"]
    [vero, vero, falso, vero, falso, falso, falso, falso, falso]
    [[1, 2], [3, 999, 4, -5], [77]]

    L'ultimo esempio è un array di array

  6. Oggetto: questo tipo complesso è il più comunemente utilizzato. Contiene coppie chiave-valore, in cui il valore può essere uno qualsiasi dei tipi sopra elencati, nonché altri oggetti. È racchiuso tra parentesi graffe e le coppie sono separate da virgole:

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

Rappresentare un oggetto Java come JSON

Ora prendiamo un oggetto Java e vediamo come appare come JSON.

Innanzitutto, definiamo una 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;
	}
}

Ora creiamo il nostro oggetto:


	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);

E ora proviamo a rappresentare ilfigliooggetto nel modo più accurato possibile in formato JSON:

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

Commenti in JSON

Tutto qui è esattamente come in Java. Esistono due tipi di commenti: // e /*...*/. Spero di non aver bisogno di ricordarti in che modo differiscono?