从嵌套结构(具有其他结构的数组)创建字典 Swift

Create a dictionary from a nested structure (with arrays of other Structures) Swift

我正在使用 Alamofire 的 Post 方法;所以我需要从包含其他模型数组的现有嵌套模型创建参数 我一直在寻找一种方法,但徒劳无功,请任何人提供帮助!

我是 SWIFT 的初学者,请停止对我的问题进行评分

喜欢这个例子

struct Car: Codable{
var id :Int, 
var name:String, 
var users:[User],
..

 var dictionaryRepresentation: [String: Any] {
        return [
            "id" : id,
            "name" : name,
            "users" : users,  XXX WRONG XXX
        ]
    }
}

我很难为“用户:[用户]”字段设置正确的格式

struct User: Codable{
var id :Int, 
var name:String, 
var email:String,
..

 var dictionaryRepresentation: [String: Any] {
        return [
            "id" : id,
            "name" : name,
            "email" : email,
        ]
    }
}

由于格式错误,我遇到了这个错误:

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (__SwiftValue)'

谢谢,

您需要 map 它到 dictionaryRepresentation 以使其像这样工作:

"users" : users.map { [=10=].dictionaryRepresentation }

更好的方法是传递 var car: Car 对象,因为它已经符合 Codable Alamafire 为您进行编码,即,您不必使 dictionaryRepresentation 用于将其作为 Alamorire 请求中的参数传递。