使用 alamofire 发布带有字典和字典数组的 JSON 对象
Posted
技术标签:
【中文标题】使用 alamofire 发布带有字典和字典数组的 JSON 对象【英文标题】:post JSON object with a dictionary and an array of dictionaries using alamofire 【发布时间】:2017-03-28 17:51:28 【问题描述】:我正在尝试像这样发布一个对象:
"simulation" : ,
"simOptions" : [
,
]
并尝试通过调用我的 SimulationRepository 类来发布它:
SimulationsRepository().confirmSimulation(params: parameters) (response) in
if let error = checkError(response)
self.hideLoading()
self.showAlert(error)
return
guard let simsArray = SimulacaoArray(responseObject: response.result.value) else
let error = response.error.debugDescription
self.hideLoading()
self.showAlert(error)
return
print(simsArray.simulation.count)
我已经尝试过Sending json array via Alamofire 和Alamofire: Send JSON with Array of Dictionaries 的解决方案,但无法正确转换字典数组。
【问题讨论】:
不是真的,因为我需要发布一个字典数组...我可以 GET 就好了。 然后在这里检查:github.com/Alamofire/…,或重复:***.com/questions/36204198/… 或***.com/questions/30394112/… 或查找更多google.se/…*。请确保在提问之前搜索问题。总帐 谢谢,但我已经解决了所有这些问题,这些解决方案都不适合我...... *** 是我的“最后手段”而不是第一个。假设我没有这样做,你太自以为是了。 编辑您的问题并更新它,说明您已阅读文档和副本以及为什么它们对您没有帮助以及您的情况有何不同,那么没有人需要自以为是。您需要至少提出问题以及您尝试过的解决方案、遇到的错误。不要让人们阅读您粘贴的代码并自动猜测您运行它时会发生什么。在这里查看:***.com/help/how-to-ask 这至少会给你一个更高的机会来获得答案。祝你好运。编辑:我收回了重复的标志。 好的,谢谢你的提示...我会这样做的! 【参考方案1】:好的,我已经通过映射模拟商品数组并将其转换为字典来解决,如下所示:
class SimulationsRepository: BaseRepository
init()
super.init(url: "/Simulations")
super.BaseUrl = "http://0.0.0.0:3000/api"
func confirmSimulation(simulation: Simulation, goods: [SimulatedGoods], then: @escaping ThenBlock)
let goodsDict = goods.map (simulatedGoods) -> [String: Any] in
return simulatedGoods.toDictionary()
let sim = simulation.toDictionary()
let params: [String: Any] = [
"simulation": sim,
"goods": goodsDict
]
super.customPost("/confirm", parameters: params, then: then)
顺便说一句,我从书中得到了这样映射数组的想法:https://www.hackingwithswift.com/store/pro-swift
【讨论】:
以上是关于使用 alamofire 发布带有字典和字典数组的 JSON 对象的主要内容,如果未能解决你的问题,请参考以下文章
如何使用新的 Swift 3 和 Alamofire 解析 JSON(字典和数组)