下面的swift枚举确保只使用纯json类型。
public enum JSONValue {
case string(String)
case integer(Int)
case double(Double)
case bool(Bool)
public init(_ value: String) {
self = .string(value)
}
public init(_ value: Int) {
self = .integer(value)
}
public init(_ value: Double) {
self = .double(value)
}
public init(_ value: Bool) {
self = .bool(value)
}
}
要初始化json值,必须执行以下操作
let json = JSONValue.string("my value")
或者在字典里
let params: [String: JSONValue] = [
"my string": JSONValue.string("my value"),
"my int": JSONValue.init(10)
]
难道没有办法从原语值推断出初始值设定者,以便于如下使用:
let json: JSONValue = "my value"
let params: [String: JSONValue] = [
"my string": "my value",
"my int": 10
]
(这不是话题,但如果你想知道为什么我需要这个jsonvalue枚举,
this is the reason