Swift:
使用TOML

如何操作:

首先,您需要一个TOML解析器。Swift没有内置的解析器,所以让我们使用TOMLDecoder。通过Swift包管理器安装它,然后可以轻松地序列化和反序列化TOML。

import TOMLDecoder

let tomlString = """
title = "TOML示例"

[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示例, 拥有者: Tom Preston-Werner, 出生日期: 1979-05-27 07:32:00 +0000

深入了解

TOML由GitHub的联合创始人Tom Preston-Werner设计,作为对格式如JSON或YAML的更加人性化的替代方案。它的目标是清晰性,减少人类或机器误解的可能。就替代方案而言,YAML和JSON是常见的选择,YAML倾向于人类的可读性,而JSON则作为更简单的机器友好选项。在Swift中处理TOML时,我们没有一个原生的解析器。然而,第三方库如TOMLDecoder通过Swift 4中引入的Codable协议,便于TOML字符串和Swift类型之间的轻松转换,从而简化了序列化过程。

另请参阅

  • TOML标准:https://toml.io
  • TOMLDecoder的GitHub:https://github.com/dduan/TOMLDecoder
  • Swift关于Codable的文档:https://developer.apple.com/documentation/swift/codable
  • 数据序列化格式的比较:https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats