JSON е един от най-популярните формати за представяне на данни като текст. Например JSON се използва за прехвърляне на данни между интерфейса и бекенда, в конфигурационни файлове, в игри, в текстови редактори и в много други области. Като програмист определено ще срещнете JSON.

Запознаване със синтаксиса

Нека изброим типовете данни, налични в JSON:

  1. Низовете са всички знаци, затворени в двойни кавички:

    "kwerty"
    "125 + 42"
    "G"

    Специалните знаци се екранират с наклонена черта:

    "първи ред\nвтори ред"
    "Той каза \"Здравей!\""
  2. Числа, включително отрицателни и реални числа. Без кавички:

    18 -333 17.88 1.2e6
  3. Булевите стойности са true / false (без кавички).

  4. null е стандартната стойност за представяне на "нищо". Тук не се използват кавички.

  5. Масив – Този тип може да съдържа стойности от всяHowви други типове. Ограден е в квадратни скоби. Елементите му са разделени със запетаи:

    ["Код", "Фитнес", "КодФитнес", "¯\_(ツ)_/¯"]
    [вярно, вярно, невярно, вярно, невярно, невярно, невярно, невярно, невярно]
    [[1, 2], [3, 999, 4, -5], [77]]

    Последният пример е масив от масиви

  6. Обект — Този сложен тип е най-често използваният. Той съдържа двойки ключ-стойност, където стойността може да бъде всеки от типовете, изброени по-горе, Howто и други обекти. Той е увит във фигурни скоби и двойките са разделени със запетаи:

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

Представяне на Java обект като JSON

Сега нека вземем няHowъв Java обект и да видим How изглежда като JSON.

Първо, нека дефинираме клас:


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

Сега нека създадем нашия обект:


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

А сега нека се опитаме да представимсинобект възможно най-точно във формат JSON:

{
 "име" : "Пол",
 "мъжки" : вярно,
 "възраст" : 7,
 "родители" : [
 {
   "име" : "Петър",
   "мъжки" : вярно,
   "възраст" : 31,
   "родители" : null
 },
 {
   "name" : "Мария",
   "male" : false,
   "age" : 28,
   "parents" : null
 }
]
}

Коментари в JSON

Тук всичко е абсолютно същото като в Java. Има два вида коментари: // и /*...*/. Надявам се, че няма нужда да ви напомням How се различават?