JavaRush /Курсы /Модуль 2. Java Core /Формат данных json

Формат данных json

Модуль 2. Java Core
16 уровень , 3 лекция
Открыта

JSON – это один из самых популярных форматов текстового представления данных. Используется JSON, например, для передачи данных между фронтендом и бэкендом, в файлах конфигурации, в играх, в текстовых редакторах и во множестве других сфер. Став на путь программиста, ты точно столкнешся с JSON.

Знакомство с синтаксисом

Перечислим типы данных, доступные в JSON:

  1. Строки — любые символы, заключенные в двойные кавычки:

    "йцукен"
    "125 + 42"
    "G"

    Специальные символы экранируются с помощью слэша:

    "first line\nsecond line"
    "ОАО \"Рога\/копыта\""
  2. Числа, в том числе отрицательные и вещественные. Без кавычек:

    18 -333 17.88 1.2e6
  3. Логический тип — true / false (без кавычек).

  4. null — стандартное обозначение для “ничего”. Кавычки не нужны.

  5. Массив — этот тип может содержать значения любых других типов. Окружается квадратными скобками, элементы разделяются запятыми:

    ["Java", "Rush", "JavaRush", "¯\_(ツ)_/¯"]
    [true, true, false, true, false, false, false, false, false]
    [[1, 2], [3, 999, 4, -5], [77]]

    Последний пример — массив массивов

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

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

Представление Java-объекта в виде JSON

Теперь давай возьмем какой-нибудь Java-объект и посмотрим на него в виде 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("Петр", true, 31);
	Human mather = new Human("Мария", false, 28);
	mather.parents = new HashSet<>();
	Human son = new Human("Павел", true, 7);
	son.parents = Set.of(father, mather);

А теперь постараемся наиболее точно изобразить объект son в формате JSON:

{
 "name" : "Павел",
 "male" : true,
 "age" : 7,
 "parents" : [
 {
   "name" : "Петр",
   "male" : true,
   "age" : 31,
   "parents" : null
 },
 {
   "name" : "Мария",
   "male" : false,
   "age" : 28,
   "parents" : null
 }
]
}

Комментарии в JSON

Здесь все точно так же, как и в Java: есть два вида комментариев: // и /*...*/ . Надеюсь, не нужно напоминать, чем они отличаются?

Комментарии (10)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Руслан Уровень 111 Expert
22 апреля 2025
Админы, исправьте, пжл, на mather на mother
Тимур Уровень 109
25 сентября 2024
I'm Siberian Уровень 109 Expert
24 сентября 2024
Olga Shestakova Уровень 108 Expert
29 июля 2022

mather.parents = new HashSet<>();
Human son = new Human("Павел", true, 7);
son.parents = Set.of(father, mather);
создается Set у mAther) а заполняется у сына? :\
Alexander Уровень 81 Expert
18 октября 2022
Тоже смотрю и не понимаю, где это будет использоваться, но видимо опечатались
Жасаров Рысбек Уровень 114 Expert
21 августа 2023
Вспомните Set и понимаете зачем mather и son
Батор Уровень 70 Expert
12 июля 2022
mather )
jvatechs Уровень 111 Expert
2 апреля 2023
Еще бы мазэр написали бы
Konstantin Уровень 111 Expert
5 мая 2022
тут еще немного о JSON ---> Введение в JSON