Swift:
Работа с TOML
Как использовать:
Для начала вам нужен парсер TOML. В Swift нет встроенного, так что давайте использовать TOMLDecoder
. Установите его через Swift Package Manager, а затем сериализуйте и десериализуйте TOML с легкостью.
import TOMLDecoder
let tomlString = """
title = "Пример TOML"
[owner]
name = "Том Престон-Вернер"
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, Владелец: Том Престон-Вернер, ДР: 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