【问题标题】:Decodable Dictionary [String : Any] [duplicate]可解码字典 [String : Any] [重复]
【发布时间】:2018-05-18 19:41:55
【问题描述】:

我正在尝试通过 Swifts Decodable 类使用 JSON Rest API。 API 包含一个字典,其中键为字符串,值有时是 String,有时是 Bool。我已经为 JSON 的所有子树创建了结构,但不知道如何使用字符串 OR Bool 值的字典。

图像参数(如下)是 [String : String] OR [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
            }

【问题讨论】:

    标签: json swift string dictionary decodable


    【解决方案1】:

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

    解决方案:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-07
      • 1970-01-01
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 1970-01-01
      • 2022-07-29
      • 1970-01-01
      相关资源
      最近更新 更多