Swift:
Работа с YAML

Как использовать:

Swift изначально не обрабатывает YAML, поэтому нам нужно использовать стороннюю библиотеку, такую как Yams. Сначала добавьте Yams в ваш Package.swift:

dependencies: [
    .package(url: "https://github.com/jpsim/Yams.git", from: "4.0.0")
]

Затем, импортируйте Yams и используйте его для парсинга YAML в словарь Swift:

import Yams

let yamlString = """
name: John Doe
age: 34
languages:
  - Swift
  - Python
"""

do {
    if let data = try Yams.load(yaml: yamlString) as? [String: Any] {
        print(data)
    }
} catch {
    print("Не удалось разобрать строку YAML.")
}

// Вывод:
// ["name": "John Doe", "age": 34, "languages": ["Swift", "Python"]]

Если вы хотите генерировать YAML из объектов Swift:

import Yams

let dictionary: [String: Any] = [
    "name": "Jane Smith",
    "age": 28,
    "languages": ["Java", "Kotlin"]
]

do {
    let yaml = try Yams.dump(object: dictionary)
    print(yaml)
} catch {
    print("Не удалось преобразовать словарь в YAML.")
}

// Вывод:
// age: 28
// languages:
//   - Java
//   - Kotlin
// name: Jane Smith

Глубже

YAML появился в 2001 году как альтернатива XML, удобная для человека. Он напоминает JSON с меньшим использованием скобок и лучшей читаемостью для человека. В то время как для веб-API обычно выбирают JSON, YAML предпочитают для файлов конфигурации. Альтернативами являются TOML и JSON5, но использование пробельных символов в YAML и возможность комментирования строк делают его желательным. С Yams, Swift подходит к обработке YAML с классовым маппингом, предлагая баланс между простотой сценариев и типовой безопасностью.

Смотрите также