JavaRush /Курсы /Модуль 1: Python Core /Знакомство с JSON

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

Модуль 1: Python Core
13 уровень , 0 лекция
Открыта

1.1 Появление JSON

JSON (JavaScript Object Notation) — это текстовый формат, используемый для обмена данными. Он был разработан в начале 2000-х годов Дугласом Крокфордом и стал популярным благодаря своей простоте и легкости использования.

Основная идея JSON заключается в создании формата, который легко читать человеку и при этом он прост для парсинга и генерации программами. JSON изначально разрабатывался на основе синтаксиса JavaScript, но его формат оказался настолько универсальным, что он стал использоваться и поддерживаться множеством других языков программирования. Теперь JSON можно использовать независимо от JavaScript: он стал стандартом для обмена данными в различных системах и приложениях, вне зависимости от языка программирования, на котором они написаны.

JSON — это фактически запись состояния объекта на языке JavaScript. Ну, почти. Вот почему JSON особенно популярен среди тех, кто пишет API для фронтенда. Кроме того, JSON широко используется для хранения конфигурационных файлов и логов.

Основные особенности JSON

Человекочитаемость:

Формат JSON легко читать и понимать людям. Это делает его удобным для использования в конфигурационных файлах и для обмена данными между клиентом и сервером.

Языковая независимость:

Хотя JSON изначально основан на синтаксисе JavaScript, он может использоваться с любым языком программирования. Многие языки программирования предоставляют встроенные библиотеки для работы с JSON.

Легкость парсинга:

Парсинг (от англ. "parsing") — это процесс разбора и анализа структуры данных, обычно текста или кода, для выделения значимой информации. В контексте программирования парсинг часто применяется для обработки текстовых данных. JSON можно легко парсить и генерировать как на клиентской, так и на серверной стороне. Сейчас в каждом языке программирования существует библиотека, которая позволяет легко преобразовать объект в JSON и обратно.

Стандарт и явный лидер:

Еще 10 лет назад JSON соперничал с XML как стандарт API. Сейчас JSON победил и является явным лидером. В API вашего бэкэнда вы можете поддерживать только JSON, и этого будет достаточно, даже если ваш API предназначен для вызова другими серверами.

1.2 Структура JSON

JSON представляет собой набор пар "ключ-значение", и его синтаксис состоит из двух основных структур:

Объекты: Объекты представляют собой неупорядоченные наборы пар "ключ-значение". Ключи — это строки, а значения могут быть любого типа данных, поддерживаемого JSON.


{
    "name": "John",
    "age": 30,
    "isStudent": false,
    "courses": ["Math", "Science"],
    "address": {
        "city": "New York",
        "zipCode": "10001"
    }
}

Массивы/Списки: Массивы представляют собой упорядоченные наборы значений (похожи на списки в Python). Значения могут быть любого типа данных, поддерживаемого JSON.


["Apple", "Banana", "Cherry", 100, 3.14, true]

Очень похоже на объекты Python, не так ли?

Все дело в том, что JSON — это фактически стандарт записи данных в JavaScript, а JavaScript в свое время был вдохновлён Python. Так что использовать JSON вам понравится.

1.3 Типы данных в JSON

JSON поддерживает следующие типы данных:

Строки: представляются в двойных кавычках.


"name": "John"

Числа: могут быть целыми или с плавающей точкой.


"age": 30

Объекты: неупорядоченные наборы пар "ключ-значение".


"address": {
    "city": "New York",
    "zipCode": "10001"
}

Массивы/Списки: упорядоченные наборы значений.


"courses": ["Math", "Science"]

Булевы значения: true или false.


"isStudent": false

В отличие от Python, true и false тут пишутся с маленькой буквы.

null: представляет пустое значение.


"middleName": null

Дата и время: передаются как строка.


{
    "datetime": "2023-05-15T14:30:00Z",
    "date": "2023-05-15",
    "time": "14:30:00"
}

Раньше их иногда передавали как число в формате UNIX timestamp, но этот подход ушёл в прошлое.

2
Задача
Модуль 1: Python Core, 13 уровень, 0 лекция
Недоступна
Сортировка мусора.
Сортировка мусора.
2
Задача
Модуль 1: Python Core, 13 уровень, 0 лекция
Недоступна
Исправление.
Исправление.
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Dmitriy Уровень 23
6 марта 2026
Во второй задаче требования не понятны, правильное решение валидатор не пропускает. Словали тоже не пропускает. В итоге удалил всё, оставил только исправленный список.
Евгений Уровень 23
22 февраля 2026
вторая задача, максимально не понятная
AlterAyrol Уровень 25
26 октября 2025
первая задача в pycharm никак не хотела приниматься, даже когда отключил логик уи стал оставлять просто перебором. В браузере оставив только {"name": "John"} сразу всё приняло. Странные двойные валидаторы(
Alexey Kim Уровень 64
13 августа 2025
Нужно удалить 3 объекта (номера 3, 4, 5). Два объекта ([1] и {"name": "John"}) — валидные JSON. Если валидатор в Python (например, json.loads()) или JavaRash считает [1] невалидным, значит, он ожидает именно объект ({}), а не массив ([]). Но технически [1] — корректный JSON, просто не объект. Если задача требует удалить всё, что не JSON, то [1] остаётся. Если нужно удалить всё, что не JSON-объект, то [1] тоже удаляется. В вашем случае (по исходному условию) удаляются только не-JSON, поэтому [1] остаётся.
Slevin Уровень 57
10 июля 2025
В первой задаче - "правильный" ответ неверный, т.к. удалено много лишнего. Сама задача сформулирована по-идиотски. Вероятно имеется в виду, какой из этих объектов имеет представление в виде JSON... Просто бред сумасшедшего. А потом я увидел второе задание... Зачем это? В каком месте нашей сумасшедшей вселенной мы будем пытаться "починить" неправильный .json ? Откуда мы его возьмём в принципе?
Екатерина Уровень 93
18 сентября 2024
13 уровень, 0 лекция. Вторая задача. Исправила только первый объект, всё остальное удалила - комментарии и два последующих объекта.
Екатерина Уровень 93
18 сентября 2024
13 уровень, 0 лекция. Первая задача. Валидатор также просил удалить комментарии, удалить невалидные JSON объекты и исправить синтаксические ошибки в валидных объектах... В итоге, удалила все комментарии, оставила только один валидный JSON, в коде у меня не осталось ни одной строчки, подсвеченной красным крестиком, после этого валидатор принял решение.
Денис Уровень 37
5 января 2025
JSON стандарт не поддерживает комментарии ни в каком виде, а в задаче работа именно с ним. Валидных JSONов в файле минимум два