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, які спростили серіалізацію.

Дивіться також