我试图通过Swifts Decodable类使用JSON Rest API。 API包含一个字典,字符键为字符串,值有时为字符串,有时为 Bool 。我已经为JSON的所有子树创建了结构,但是无法弄清楚如何使用字符串 OR Bool的字典。
图像参数(下面)是 [String:String]或[String:Bool] 。
struct Item:Decodable {
var id: String
var name: String
var price: String
var priceIcon: String
var priceIconLink: String
var images: [String : String]
var rarity: String
var type: String
var readableType: String
}
试过这个,但它不符合Decodable。
var images: [String : Any]
JSON响应示例
"images": {
"icon": "https://image.fnbr.co/emote/5ae8a0edf3d31bd9cac5b80d/icon.png",
"png": "https://image.fnbr.co/emote/5ae8a0edf3d31bd9cac5b80d/png.png",
"gallery": "https://image.fnbr.co/emote/5ae8a0edf3d31bd9cac5b80d/gallery.jpg",
"featured": false
}
答案 0 :(得分:-1)
解决了!我在解析之前对JSON字符串进行了一些预处理。用空字符串替换所有false("")。
解决方案:
dataString.replacingOccurrences(of: ":false}", with: ":\"\"}", options: .literal, range: nil)