JSON – это один из самых популярных форматов текстового представления данных. Используется JSON, например, для передачи данных между фронтендом и бэкендом, в файлах конфигурации, в играх, в текстовых редакторах и во множестве других сфер. Став на путь программиста, ты точно столкнешся с JSON.
Знакомство с синтаксисом
Перечислим типы данных, доступные в JSON:
Строки — любые символы, заключенные в двойные кавычки:
"йцукен""125 + 42""G"Специальные символы экранируются с помощью слэша:
"first line\nsecond line""ОАО \"Рога\/копыта\""Числа, в том числе отрицательные и вещественные. Без кавычек:
18 -333 17.88 1.2e6Логический тип — true / false (без кавычек).
null — стандартное обозначение для “ничего”. Кавычки не нужны.
Массив — этот тип может содержать значения любых других типов. Окружается квадратными скобками, элементы разделяются запятыми:
["Java", "Rush", "JavaRush", "¯\_(ツ)_/¯"][true, true, false, true, false, false, false, false, false][[1, 2], [3, 999, 4, -5], [77]]Последний пример — массив массивов
Объект — сложный тип, но наиболее часто используемый. Содержит пары ключ:значение, где в качестве значения могут быть любые типы, перечисленные выше, а также другие объекты. Окружается фигурными скобками, пары разделяются запятыми:
{ "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: есть два вида комментариев: // и /*...*/ . Надеюсь, не нужно напоминать, чем они отличаются?
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ