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?