Ответ
JSON (JavaScript Object Notation) — это легковесный текстовый формат для обмена структурированными данными, основанный на синтаксисе объектов JavaScript. Он независим от языка и широко используется в API, конфигурационных файлах и для хранения данных.
Основные синтаксические правила:
- Данные — это пары «ключ: значение».
- Ключи всегда должны быть строками, заключенными в двойные кавычки (
"). - Значения могут быть:
- Строкой (в двойных кавычках):
"Hello" - Числом (целым или с плавающей точкой):
42,3.14 - Логическим значением:
true,false - null:
null - Массивом (упорядоченный список в квадратных скобках
[]):[1, 2, 3] - Объектом (набор пар ключ-значение в фигурных скобках
{}):{"key": "value"}
- Строкой (в двойных кавычках):
- Данные разделяются запятыми (
,). - Пробелы (пробел, табуляция, перенос строки) между элементами игнорируются парсерами.
Пример корректного JSON:
{
"user": {
"id": 1,
"name": "Alice",
"isActive": true,
"skills": ["QA", "Automation", "API Testing"],
"projects": [
{"id": 101, "title": "Web App"},
{"id": 102, "title": "Mobile App"}
],
"metadata": null
}
}
Чем JSON отличается от XML?
- JSON менее многословен, проще для чтения и парсинга, напрямую отображается в структуры данных языков программирования (объекты, словари, списки).
- XML поддерживает комментарии, пространства имён, более сложную валидацию через схемы (XSD), но более «тяжелый».
Работа с JSON в Python:
import json
# Сериализация Python-объекта в JSON-строку
data = {"name": "Alice", "age": 30}
json_string = json.dumps(data, indent=2) # indent для красивого форматирования
print(json_string)
# Десериализация JSON-строки в Python-объект
parsed_data = json.loads(json_string)
print(parsed_data["name"]) # Alice
# Чтение из файла и запись в файл
with open('data.json', 'r') as f:
data_from_file = json.load(f)
with open('output.json', 'w') as f:
json.dump(data_from_file, f, indent=4)