Yaml 3.4.4

Yaml 3.4.4

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2019年4月
SPM支持 SPM

Maintained by Behrang Noruzi Niya, Seivan Heidari.



Yaml 3.4.4

  • 作者:
  • behrang

YamlSwift

使用 YAMLJSON 文档的 Swift.

YamlSwift 解析 YAML 文档字符串(或 JSON 文档),并返回表示该字符串的 Yaml 枚举值。

安装

使用 Carthage 进行构建和安装。

或者使用 CocoaPods : 将 pod 'Yaml' 添加到您的 Podfile 中,并运行 pod install

它支持 Swift Package Manager。

        .package(
            url: "https://github.com/behrang/YamlSwift.git",
            from: "

而且

        .target(
            name: "YourProject",
            dependencies: ["Yaml"]),

API

导入

要使用它,您应该使用以下语句导入:

import Yaml

Yaml

Yaml值可以是以下任何一种情况

enum Yaml {
  case null
  case bool(Bool)
  case int(Int)
  case double(Double)
  case string(String)
  case array([Yaml])
  case dictionary([Yaml: Yaml])
}

Yaml.load

Yaml.load (String) throws -> Yaml

接受一个 YAML 文档的字符串并返回一个 Yaml 枚举。

let value = try! Yaml.load("a: 1\nb: 2")
print(value["a"])  // Int(1)
print(value["b"])  // Int(2)
print(value["c"])  // Null

如果输入文档无效或包含多个 YAML 文档,将抛出错误。

do {
  let value = try Yaml.load("a\nb: 2")
}
catch {
  print(error)  // expected end, near "b: 2"
}

Yaml.loadMultiple

Yaml.loadMultiple (String) throws -> [Yaml]

接受一个包含一个或多个 YAML 文档的字符串,并返回 [Yaml]

let value = try! Yaml.loadMultiple("---\na: 1\nb: 2\n---\na: 3\nb: 4")
print(value[0]["a"])  // Int(1)
print(value[1]["a"])  // Int(3)

如果在任何文档中遇到错误,将抛出错误。

Yaml#[Int] -> Yaml

value[Int] -> Yaml
value[Int] = Yaml

如果对一个 Yaml.array 值使用,将返回指定索引的值。如果索引无效或值不是 Yaml.array,则返回 Yaml.null。您也可以设置指定索引的值。如果值不是 Yaml.array,则在设置后将转换为它。

var value = try! Yaml.load("- Behrang\n- Maryam")
print(value[0])  // String(Behrang)
print(value[1])  // String(Maryam)
print(value[2])  // Null
value[2] = "Radin"
print(value[2])  // String(Radin)

Yaml#[Yaml] -> Yaml

value[Yaml] -> Yaml
value[Yaml] = Yaml

如果对一个 Yaml.dictionary 值使用,将返回指定键的值。如果指定键不存在或值不是 Yaml.dictionary,则返回 Yaml.null。您也可以设置指定键的值。如果值不是 Yaml.dictionary,则在设置后将转换为它。

由于 Yaml 是一个可转换的文本类型,您可以将简单值传递给此方法。

var value = try! Yaml.load("first name: Behrang\nlast name: Noruzi Niya")
print(value["first name"])  // String(Behrang)
print(value["last name"])  // String(Noruzi Niya)
print(value["age"])  // Null
value["first name"] = "Radin"
value["age"] = 1
print(value["first name"])  // String(Radin)
print(value["last name"])  // String(Noruzi Niya)
print(value["age"])  // Int(1)

Yaml#bool

value.bool -> Bool?

返回一个 Optional 值。如果值是一个 Yaml.bool 值,则返回包装值。否则返回 nil

let value = try! Yaml.load("animate: true\nshow tip: false\nusage: 25")
print(value["animate"].bool)  // Optional(true)
print(value["show tip"].bool)  // Optional(false)
print(value["usage"].bool)  // nil

Yaml#int

value.int -> Int?

返回一个 Optional 值。如果值是一个 Yaml.int 值,则返回包装的值。否则返回 nil

let value = try! Yaml.load("a: 1\nb: 2.0\nc: 2.5")
print(value["a"].int)  // Optional(1)
print(value["b"].int)  // Optional(2)
print(value["c"].int)  // nil

Yaml#double

value.double -> Double?

返回一个 Optional 值。如果值是一个 Yaml.double 值,则返回包装的值。否则返回 nil

let value = try! Yaml.load("a: 1\nb: 2.0\nc: 2.5\nd: true")
print(value["a"].double)  // Optional(1.0)
print(value["b"].double)  // Optional(2.0)
print(value["c"].double)  // Optional(2.5)
print(value["d"].double)  // nil

Yaml#string

value.string -> String?

返回一个 Optional 值。如果值是一个 Yaml.string 值,则返回包装的值。否则返回 nil

let value = try! Yaml.load("first name: Behrang\nlast name: Noruzi Niya\nage: 33")
print(value["first name"].string)  // Optional("Behrang")
print(value["last name"].string)  // Optional("Noruzi Niya")
print(value["age"].string)  // nil

Yaml#array

value.array -> [Yaml]?

返回一个 Optional 值。如果值是一个 Yaml.array 值,则返回包装的值。否则返回 nil

let value = try! Yaml.load("languages:\n - Swift: true\n - Objective C: false")
print(value.array)  // nil
print(value["languages"].array)  // Optional([Dictionary([String(Swift): Bool(true)]), Dictionary([String(Objective C): Bool(false)])])

Yaml#dictionary

value.dictionary -> [Yaml: Yaml]?

返回一个 Optional 值。如果值是一个 Yaml.dictionary 值,则返回包装的值。否则返回 nil

let value = try! Yaml.load("- Swift: true\n- Objective C: false")
print(value.dictionary)  // nil
print(value[0].dictionary)  // Optional([String(Swift): Bool(true)])

Yaml#count

value.count -> Int?

返回一个Optional<Int>值。如果值是Yaml.arrayYaml.dictionary值,返回元素计数。否则返回nil

let value = try! Yaml.load("- Swift: true\n- Objective C: false")
print(value.count)  // Optional(2)
print(value[0].count)  // Optional(1)
print(value[0]["Swift"].count)  // nil

许可证

MIT