我只是好奇如何将带有String键和Encodable值的字典编码为 JSON。
例如:
let dict: [String: Encodable] = [
"Int": 1,
"Double": 3.14,
"Bool": false,
"String": "test"
]
这里的键dict都是 type String,但是值的类型不同。
但是,JSON 中允许所有这些类型。
我想知道是否有一种方法可以JSONEncoder在 Swift 4 中使用将其编码dict为 JSON Data。
我确实知道还有其他方法可以不使用JSONEncoder来实现这一点,但我只是想知道是否JSONEncoder能够管理这一点。
Dictionary确实有一个扩展func encode(to encoder: Encoder) throws名,但这仅适用于约束Key: Encodable, Key: Hashable, Value: Encodable,而对于我们的dict,它需要约束Key: Encodable, Key: Hashable, Value == Encodable。
有struct这个就足够了JSONEncoder,
struct Test: Encodable {
let int = 1
let double = 3.14
let bool = false
let string = "test"
}
但是,我很想知道是否可以在不指定具体类型而只指定Encodable协议的情况下完成它。