Swift:
Робота з TOML
Як це зробити:
Для початку вам потрібен парсер TOML. Swift не має вбудованого, тому використаємо TOMLDecoder
. Встановіть його через Swift Package Manager, а потім з легкістю серіалізуйте та десеріалізуйте TOML.
import TOMLDecoder
let tomlString = """
title = "TOML Example"
[owner]
name = "Tom Preston-Werner"
dob = 1979-05-27T07:32:00Z
"""
struct Config: Codable {
let title: String
let owner: Owner
}
struct Owner: Codable {
let name: String
let dob: Date
}
let decoder = TOMLDecoder()
if let configData = tomlString.data(using: .utf8) {
do {
let config = try decoder.decode(Config.self, from: configData)
print("Назва: \(config.title), Власник: \(config.owner.name), ДН: \(config.owner.dob)")
} catch {
print("Помилка парсингу TOML: \(error)")
}
}
Цей код виводить:
Назва: TOML Example, Власник: Tom Preston-Werner, ДН: 1979-05-27 07:32:00 +0000
Поглиблено
TOML було розроблено Томом Престон-Вернером, співзасновником GitHub, як більш дружню до людини альтернативу форматам на кшталт JSON чи YAML. Його мета - чіткість, зменшення шансів на неправильне тлумачення людиною або машиною. Що стосується альтернатив, то зазвичай користуються YAML та JSON, з яких YAML націлений на читабельність для людини, а JSON - простіший варіант, дружній до машини. Працюючи з TOML у Swift, ми не маємо нативного парсера. Однак, сторонні бібліотеки на кшталт TOMLDecoder
полегшують перетворення рядків TOML на типи Swift, зокрема через протоколи Codable
, введені у Swift 4, які спростили серіалізацію.
Дивіться також
- Стандарт TOML: https://toml.io
- GitHub для
TOMLDecoder
: https://github.com/dduan/TOMLDecoder - Документація Swift по
Codable
: https://developer.apple.com/documentation/swift/codable - Порівняння форматів серіалізації даних: https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats