Swift解析Cataas API标签报错:预期字典却找到字符串如何解决
错误原因
你遇到的类型不匹配报错,是因为自定义的解码模型和接口实际返回的JSON结构不符。Cataas的标签接口返回的根节点就是纯字符串数组,没有外层字典,也不存在名为tag的字段。
你原有代码中尝试解析[CatArray].self(即包含tag属性的结构体数组),但JSON数组的每个元素都是字符串,解码时系统预期找到字典结构却匹配到了字符串,因此抛出错误。
修改后的代码
无需自定义CatArray结构体,直接对字符串数组类型解码即可:
func parse(dataJSON: Data) { let decoder = JSONDecoder() do { let decodedTags = try decoder.decode([String].self, from: dataJSON) // decodedTags就是你需要的标签数组 print(decodedTags.count) } catch { print(error) } }
内容的提问来源于stack exchange,提问作者Matt_Ele
相关产品推荐
相关产品推荐

