object - 如何在Swift 3中将总模型对象作为Alamofire post方法的参数发送?

标签 object post parameters swift3 alamofire

我有一个这样的模型类

class Example() {
  var name:String?
  var age:String?
  var marks:String? 
}

我正在向该模型类添加数据
let example = Example()
example.name = "ABC"
example.age = "10"
example.marks = "10" 

之后我转换为 JSON 然后我发布
Alamofire.request(URL, method:.post, parameters: example)

Alamofire 不接受参数,只接受它,如 parameters = ["":"","",""]-->key value based ,所以我尝试将模型转换为 JSON,将 JSON 转换为字典,即使不接受其显示类似参数的问题。正是我需要将总模型对象作为 Alamofire 中 post 方法的参数发送,如下所示:
let example = Example()
Alamofire.request(URL, method:.post, parameters: example) 

最佳答案

由于 Alamofire API 只接受字典,请自己创建字典!

在模型类中添加一个名为 toJSON 的方法:

func toJSON() -> [String: Any] {
    return [
        "name": name as Any,
        "age": age as Any,
        "marks": marks as Any
    ]
}

然后在调用request的时候调用这个方法:
Alamofire.request(URL, 
    method:.put, 
    parameters:example.toJSON(), 
    encoding:JSONEncoding.default, 
    headers :Defines.Api.Headers )

或者,使用 SwiftyJSON:
func toJSON() -> JSON {
    return [
        "name": name as Any,
        "age": age as Any,
        "marks": marks as Any
    ]
}

用法:
Alamofire.request(URL, 
    method:.put, 
    parameters:example.toJSON().dictionaryObject, 
    encoding:JSONEncoding.default, 
    headers :Defines.Api.Headers )

关于object - 如何在Swift 3中将总模型对象作为Alamofire post方法的参数发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43649027/

相关文章:

object - 解析一个对象,为每个成员添加一个成员属性

php - 如何在php中创建对象数组

json - 为什么我无法访问发布到我的 codeigniter 应用程序的 json 数据?

带指示器的后台快速发布

swift - call//Twitter 中参数 #1 缺少实参

javascript - 将多组参数分配给 jQuery 函数

jquery - 将包含对象的 div 复制到另一个 div

c# - 空发布请求(.Net Core 3.1)

C - 无法初始化作为参数传递的指针

javascript - 尽管存在于 Chrome 控制台 TreeView 中,但对象属性(类型 = 对象)未定义