У меня есть следующее перечисление 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 enum, это причина