← Назад к вопросам
В чем разница между JSON и XML?
1.3 Junior🔥 241 комментариев
#API тестирование#Сети и протоколы
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
JSON vs XML
Определение
JSON (JavaScript Object Notation) — легкий формат для обмена данными
XML (eXtensible Markup Language) — язык разметки для структурирования данных
Основные различия
1. Синтаксис
JSON:
{
"users": [
{
"id": 1,
"name": "John",
"email": "john@test.com"
}
]
}
XML:
<users>
<user>
<id>1</id>
<name>John</name>
<email>john@test.com</email>
</user>
</users>
2. Размер
JSON — компактнее (меньше символов)
XML — многословнее (теги повторяются)
3. Человекочитаемость
JSON — более читаемый для современных разработчиков
XML — самодокументирующийся формат
4. Поддержка типов данных
JSON:
- String (строка)
- Number (число)
- Boolean (логическое)
- Null
- Array (массив)
- Object (объект)
XML:
- Все значения — строки
- Нужно вручную парсить типы
5. Атрибуты
JSON — нет атрибутов
XML — есть атрибуты:
<user id="1" status="active">
<name>John</name>
</user>
Практические примеры
Парсинг JSON:
import json
json_data = '{"name": "John", "age": 30}'
data = json.loads(json_data)
print(data["name"]) # John
# Или с requests
import requests
response = requests.get("https://api.example.com/users")
data = response.json()
Парсинг XML:
import xml.etree.ElementTree as ET
xml_data = '<user><name>John</name></user>'
root = ET.fromstring(xml_data)
name = root.find('name').text
print(name) # John
Тестирование
JSON API тест:
def test_json_response():
response = requests.get("https://api.example.com/users")
assert response.status_code == 200
data = response.json()
assert isinstance(data, list)
assert data[0]["id"] == 1
XML API тест:
def test_xml_response():
response = requests.get("https://api.example.com/users.xml")
assert response.status_code == 200
root = ET.fromstring(response.content)
users = root.findall("user")
assert len(users) > 0
Сравнение
| Характеристика | JSON | XML |
|---|---|---|
| Размер | Компактный | Многословный |
| Скорость парсинга | Быстрее | Медленнее |
| Типы данных | Встроенные | Строки |
| Валидация схемы | JSON Schema | XSD |
| Комментарии | Нет | Есть |
| Поддержка | Все языки | Все языки |
Когда использовать
JSON:
- REST API (современный стандарт)
- Веб-приложения
- Конфигурационные файлы (package.json, config.json)
- Когда нужна компактность
XML:
- SOAP API
- Конфигурационные файлы (web.xml, pom.xml)
- XHTML
- Когда нужны атрибуты и сложная структура
- Документы (Office, PDF)
Современный тренд
JSON стал стандартом для API. XML используется реже, но все еще применяется в enterprise решениях и конфигурациях.
Для QA тестирования: JSON более распространен в современных API, но важно уметь работать с обоими форматами.