typeMismatch(Swift.Dictionary<Swift.String, Any>,
Posted
技术标签:
【中文标题】typeMismatch(Swift.Dictionary<Swift.String, Any>,【英文标题】: 【发布时间】:2021-03-17 15:09:55 【问题描述】:我的 JSON :
'''
"status": 200,
"data":
"widgets": [
"type": "small_half_slider",
"data":
"banners": [
"id": 42765,
"image": "",
"title": "!",
"is_ad": false,
"url":
"url": "",
"page": "web_link",
"params":
"url": ""
,
"queries": []
,
"video": "",
"description": "",
"bullet_points": []
'''
和我的结构:
'''
import Foundation
struct mainPage:Codable
var status:Int?
var data: mData?
struct mData:Codable
var widgets:[Mwidg]
struct Mwidg:Codable
var type:String
var data:wdata
struct wdata:Codable
var show_type:String?
var banners:[bannerData]?
struct bannerData:Codable
var id:Int?
var image:String?
var title:String?
var is_ad:Bool?
var url:urlData?
var video:String?
var description:String?
struct urlData:Codable
var url:String?
var page:String?
var params:paramsData?
var queries:[queriesData]?
struct paramsData:Codable
var url:String?
struct queriesData:Codable
'''
然后我遇到了这个错误:
typeMismatch(Swift.Dictionary
【问题讨论】:
嗯,显然数组widgets
的second 元素中的键data
的值类型是数组而不是对象。检查您的 JSON。它的价值是 ...
或 [...]
吗?
将您的 JSON 粘贴到 quicktype.io 中,看看它构建了什么结构,看看您是否会帮助找到错误的地方。
【参考方案1】:
您正面临这个问题,因为在您的 json 响应中,您没有获取值或获取 struct mData 和 Mwidg 中存在的属性的 nil 值,为了使您的解决方案使 struct 属性成为可选的,即使您没有在您的 json 响应中接收数据,代码将起作用。您粘贴的有问题的 json 未完成,您可能将某些对象设为 nil。
【讨论】:
以上是关于typeMismatch(Swift.Dictionary<Swift.String, Any>,的主要内容,如果未能解决你的问题,请参考以下文章
typeMismatch(Swift.Dictionary<Swift.String, Any>,
org.springframework.validation.BeanPropertyBindingResult: 1 errors
springboot 提交时间字符串报错 Failed to convert property value of type ‘java.lang.String‘ to required ‘Date‘
springboot 提交时间字符串报错 Failed to convert property value of type ‘java.lang.String‘ to required ‘Date‘
springboot 提交时间字符串报错 Failed to convert property value of type ‘java.lang.String‘ to required ‘Date‘