JSON är ett av de mest populära formaten för att representera data som text. JSON används till exempel för att överföra data mellan frontend och backend, i konfigurationsfiler, i spel, i textredigerare och i många andra områden. Som programmerare kommer du definitivt att stöta på JSON.

Introduktion till syntaxen

Låt oss lista de datatyper som är tillgängliga i JSON:

  1. Strängar är alla tecken som omges av dubbla citattecken:

    "kwerty"
    "125 + 42"
    "G"

    Specialtecken undviks med ett snedstreck:

    "första raden\nandra raden"
    "Han sa,"Hej!""
  2. Tal, inklusive negativa och reella tal. Inga citat:

    18 -333 17,88 1,2e6
  3. De booleska värdena är sant / falskt (inga citattecken).

  4. null är standardvärdet för att representera "ingenting". Inga citattecken används här.

  5. Array − Denna typ kan innehålla värden av alla andra typer. Den är inslagen i hakparenteser. Dess element är separerade med kommatecken:

    ["Kod", "Gym", "CodeGym", "¯\_(ツ)_/¯"]
    [true, true, false, true, false, false, false, false, false]
    [[1, 2], [3, 999, 4, -5], [77]]

    Det sista exemplet är en array av arrayer

  6. Objekt — Denna komplexa typ är den vanligaste. Den innehåller nyckel-värdepar, där värdet kan vara vilken som helst av de typer som anges ovan, såväl som andra objekt. Den är inlindad i lockiga hängslen, och paren är åtskilda med kommatecken:

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

Representerar ett Java-objekt som JSON

Låt oss nu ta ett Java-objekt och se hur det ser ut som JSON.

Låt oss först definiera en klass:

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

Låt oss nu skapa vårt objekt:

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

Och låt oss nu försöka representerasonobjekt så exakt som möjligt i JSON-format:

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

Kommentarer i JSON

Allt här är exakt detsamma som i Java. Det finns två typer av kommentarer: // och /*...*/. Jag hoppas att jag inte behöver påminna dig om hur de skiljer sig åt?