可解码字典[字符串:任意]

时间:2018-05-18 19:41:55

标签: json swift string dictionary decodable

我试图通过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
            }

1 个答案:

答案 0 :(得分:-1)

解决了!我在解析之前对JSON字符串进行了一些预处理。用空字符串替换所有false("")。

解决方案:

dataString.replacingOccurrences(of: ":false}", with: ":\"\"}", options: .literal, range: nil)