【发布时间】:2019-02-18 17:20:05
【问题描述】:
编辑:2019 年 2 月 19 日 我尝试了提供的解决方案。我选择了一个更简单的选项,将字典作为参数传递并使用 Alamofire 的 JSONEncoder 将其转换为 JSON 对象。这是我尝试的第一件事,但问题是感谢大家的帮助。
我想将一个类对象发布到一个 api,但我正在努力处理类型并将其编码为 JSON。
let jsonData = try JSONEncoder().encode(classObject)
let params = String(data: jsonData, encoding: .utf8)
Alamofire.request(shopSubmitURL, method: .post, parameters: params).responseString { response in
switch(response.result) {
case .success(_) :
if let data = response.result.value {
print("Successfully submitted class object: \(response.result.value)")
}
break
case .failure(_):
print(response.result.error)
break
}
而我的 classObject 是这样设置的:
class classObject: NSObject, Codable {
var name : String = ""
var items : Array = [Int]()
}
我尝试将对象转换为带有扩展名的字典,但是当我这样做时,我必须使用“Any”或“AnyObject”,这会导致“无法推断通用参数”错误。
目前我收到“调用中的额外参数“方法”错误。
【问题讨论】:
-
该错误必须与您的 Alamofire 调用有关,而不是 json 编码
-
Josh - 我认为这可能有答案,但我使用的是 swift 4,目前尚不清楚我是否应该使用 JSONserialisation 或其他方法。
-
Joakim - 只要参数不是合适的 JSON 对象,我就会收到 Alamofire 错误。我正在努力从我的类对象中创建正确的 JSON 对象。
标签: ios swift alamofire jsonencoder