【发布时间】: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 中,看看它构建了什么结构,看看您是否会帮助找到错误的地方。