JSON is een van de meest populaire indelingen om gegevens als tekst weer te geven. JSON wordt bijvoorbeeld gebruikt om gegevens over te dragen tussen de frontend en backend, in configuratiebestanden, in games, in teksteditors en op veel andere gebieden. JSON kom je als programmeur zeker tegen.

Introductie van de syntaxis

Laten we een lijst maken van de gegevenstypen die beschikbaar zijn in JSON:

  1. Strings zijn alle tekens tussen dubbele aanhalingstekens:

    "kwerty"
    "125 + 42"
    "G"

    Speciale tekens worden weggelaten met een schuine streep:

    "eerste regel\ntweede regel"
    "Hij zei, \"Hallo!\""
  2. Getallen, inclusief negatieve en reële getallen. Geen aanhalingstekens:

    18 -333 17,88 1,2e6
  3. De Booleaanse waarden zijn waar / onwaar (geen aanhalingstekens).

  4. null is de standaardwaarde om "niets" weer te geven. Hier worden geen aanhalingstekens gebruikt.

  5. Array - Dit type kan waarden van elk ander type bevatten. Het staat tussen vierkante haken. De elementen worden gescheiden door komma's:

    ["Code", "Sportschool", "CodeGym", "¯\_(ツ)_/¯"]
    [waar, waar, onwaar, waar, onwaar, onwaar, onwaar, onwaar, onwaar]
    [[1, 2], [3, 999, 4, -5], [77]]

    Het laatste voorbeeld is een array van arrays

  6. Object — Dit complexe type wordt het meest gebruikt. Het bevat sleutel-waardeparen, waarbij de waarde elk van de hierboven genoemde typen kan zijn, evenals andere objecten. Het is verpakt in accolades en de paren worden gescheiden door komma's:

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

Een Java-object voorstellen als JSON

Laten we nu een Java-object nemen en kijken hoe het eruit ziet als JSON.

Laten we eerst een klasse definiëren:


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

Laten we nu ons object maken:


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

En laten we nu proberen om dezoonobject zo nauwkeurig mogelijk in JSON-formaat:

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

Opmerkingen in JSON

Alles is hier precies hetzelfde als op Java. Er zijn twee soorten commentaar: // en /*...*/. Ik hoop dat ik je er niet aan hoef te herinneren hoe ze verschillen?