可解码字典 [String : Any] [重复]
Posted
技术标签:
【中文标题】可解码字典 [String : Any] [重复]【英文标题】:Decodable Dictionary [String : Any] [duplicate] 【发布时间】: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
【问题讨论】:
【参考方案1】:解决了!在解析之前,我对 JSON 字符串进行了一些预处理。将所有 false 替换为空字符串 ("")。
解决方案:
dataString.replacingOccurrences(of: ":false", with: ":\"\"", options: .literal, range: nil)
【讨论】:
以上是关于可解码字典 [String : Any] [重复]的主要内容,如果未能解决你的问题,请参考以下文章
错误:“应解码 Dictionary<String, Any>,但找到了一个数组。” ——但我还没有定义字典? [复制]
Swift4 JSONDecoder 期望解码 Dictionary<String, Any> 但找到了一个数组 [重复]
无法转换类型“字典<String, Any>?”的值?到预期的参数类型“数据”