期望解码数组,<Any>但找到了字典。



我有一个错误:期望解码数组,但发现一个字典。", underlyingError: nil)

我使用Moya和JSON:

"buttons" : [
{
"name" : "chat",
"title" : "Сообщения",
"active" : true
},
{
"title" : "Управление заявкой",
"active" : true,
"name" : "posterRecordActions",
"actions" : {
"name" : "cancelPosterRecord",
"title" : "Отменить заявку",
"active" : true
}
}
]

我的结构:

struct Record: Codable {
let id: Int
let title: String
@FailableURL var image: URL?
let statusTitle: String
let statusColorName: String
let price: Int
let startTime: Int
let description: String?
let placeTitle: String
let members: [Members]
let rules: String?
let recordForm: [String]
let buttons: [API.Posters.RequestButtons]
struct RequestButtons: Codable {
let name: RequestButtonName
let title: String
let active: Bool?
let actions: [RequestButtons]?
let paymentLink: String?
let paymentContext: String?
let value: String?
let badge: Int?
}

我认为,的动作有问题按钮,但我无法解决这个问题(

Actions在您的JSON是NOT数组,它是一个字典

改变你的结构,像下面的代码:

struct RequestButtons: Codable {
...
let actions: RequestButtons?
...
}

另外,我建议阅读swift的API设计来确定你的命名约定;API设计指南

例如,RequestButtons必须是RequestButtonactions在你的例子中必须是action,因为它们不是复数

最新更新