Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Что такое JSON (JavaScript Object Notation)
JSON расшифровывается как JavaScript Object Notation — это текстовый формат обмена данными.
Расшифровка аббревиатуры
J — JavaScript S — Object O — Notation
Но это не только для JavaScript!
Несмотря на названием, JSON используется во всех языках программирования. Выбор названия исторический — формат был создан для JavaScript, но быстро стал универсальным стандартом обмена данными.
Структура JSON
JSON основан на двух структурах:
1. Объект (Object) — пары ключ-значение
{
"name": "John",
"age": 30,
"city": "New York"
}
2. Массив (Array) — упорядоченный список значений
[1, 2, 3, "hello", true, null]
Типы данных в JSON
{
"string": "текст",
"number": 42,
"float": 3.14,
"boolean": true,
"null": null,
"array": [1, 2, 3],
"object": { "nested": "value" }
}
Работа с JSON в Python
import json
# Преобразование Python объекта в JSON строку
data = {"name": "John", "age": 30}
json_string = json.dumps(data)
print(json_string) # {"name": "John", "age": 30}
# Преобразование JSON строки в Python объект
json_str = '{"name": "John", "age": 30}'
python_obj = json.loads(json_str)
print(python_obj) # {'name': 'John', 'age': 30}
# Чтение JSON из файла
with open("data.json") as f:
data = json.load(f)
# Запись JSON в файл
with open("data.json", "w") as f:
json.dump(data, f)
JSON в веб-разработке
JSON — стандарт обмена данными между клиентом и сервером:
import requests
# Отправка JSON
response = requests.post(
"https://api.example.com/users",
json={"name": "John", "age": 30}
)
# Получение JSON
data = response.json() # Автоматически парсит JSON
REST API и JSON
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class User(BaseModel):
name: str
age: int
@app.post("/users")
async def create_user(user: User):
return user # FastAPI автоматически конвертирует в JSON
Преимущества JSON
- Легко читать — человеко-читаемый формат
- Универсальность — поддерживается во всех языках
- Компактность — меньше XML
- Парсинг — легко парсить в любом языке
- Веб-стандарт — используется везде
Практический пример
import json
from typing import List
# Комплексная структура
users_data = {
"users": [
{"id": 1, "name": "John", "skills": ["Python", "JavaScript"]},
{"id": 2, "name": "Jane", "skills": ["Java", "Go"]}
]
}
# Сериализация в JSON
json_str = json.dumps(users_data, indent=2)
print(json_str)
# Десериализация из JSON
parsed = json.loads(json_str)
for user in parsed["users"]:
print(f"{user['name']}: {', '.join(user['skills'])}")
Историческая справка
JSON был создан Douglas Crockford в начале 2000х годов как более лёгкая альтернатива XML для передачи данных в JavaScript. Но быстро стал де-факто стандартом для всех приложений.
Итог
JSON = JavaScript Object Notation
- Текстовый формат обмена данными
- Универсальный стандарт (не только для JavaScript)
- Основан на объектах и массивах
- Легко читать, парсить и создавать
- Стандарт для REST API и веб-приложений