我有一个在JSON中看起来像这样的数据结构:
[{
"value": "1",
"optionId": "be69fa23-6eca-4e1b-8c78-c01daaa43c88"
}, {
"value": "0",
"optionId": "f75da6a9-a34c-4ff6-8070-0d27792073df"
}]
基本上,它是一个字典数组。我宁愿使用默认的Alamofire方法,也不想手动构建请求。有没有办法给Alamofire提供我的参数,其余的Alamofire可以吗?
如果我手动创建所有内容,则会从服务器收到错误消息,提示发送数据不正确。
var parameters = [[String:AnyObject]]()
for votingOption in votingOptions{
let type = votingOption.votingHeaders.first?.type
let parameter = ["optionId":votingOption.optionID,
"value": votingOption.votingBoolValue
]
parameters.append(parameter)
}
let jsonData = try! NSJSONSerialization.dataWithJSONObject(parameters, options: [])
let json = try! NSJSONSerialization.JSONObjectWithData(jsonData, options: .AllowFragments)
if let url = NSURL(string:"myprivateurl"){
let request = NSMutableURLRequest(URL: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.HTTPMethod = Method.POST.rawValue
request.HTTPBody = try! NSJSONSerialization.dataWithJSONObject(parameters, options: [])
AlamofireManager.Configured.request(request)
.responseJSON { response in
//Handle result
}
}
您可以执行以下操作:
Alamofire.request(.POST, urlPath, parameters: params).responseJSON{ request, response, data in
//YOUR_CODE
}
哪里parameters
是[String:AnyObject]
和是Alamofire负责剩下的照顾。
由于您似乎正在使用经理,因此可以执行此操作
YOUR_ALAMOFIRE_MANAGER.request(.POST, url, parameters: params).responseJSON{ request, response, JSON in
//enter code here
}
这是源代码:
public func request(
method: Method,
_ URLString: URLStringConvertible,
parameters: [String: AnyObject]? = nil,
encoding: ParameterEncoding = .URL,
headers: [String: String]? = nil)
-> Request
{
let mutableURLRequest = URLRequest(method, URLString, headers: headers)
let encodedURLRequest = encoding.encode(mutableURLRequest, parameters: parameters).0
return request(encodedURLRequest)
}
编辑:
由于您的数据是当前数据[[String:AnyObject]]
,因此您需要对其进行修改,使其形式为[String:AnyObject]
。我可以这样做的一种方式是这样做["data":[[String:AnyObject]]]
。不过,您可能必须更改api端点。
问题内容: 我想知道是否可以在POST请求中直接发送一个数组(未包装在字典中)。显然,该参数应获取以下内容的映射:[String:AnyObject]?但我希望能够发送以下示例json: 问题答案: 您可以使用JSON进行编码,然后自行构建。例如,在Swift 3中:
问题内容: 我是使用Swift语言进行iOS开发的初学者。我有一个包含以下数据的JSON文件。 我想解析此文件,并且必须返回包含JSON文件中数据的字典。这是我写的方法。 当我修改此方法以返回字典时,它总是返回nil。如何修改此方法。 问题答案: 您不能执行异步任务。您必须改用回调。 添加这样的回调: 解析器方法签名: 并在您要“返回”的数据可用的地方调用补全: 现在,您可以将此方法与结尾的闭包一
问题内容: 我有一个非常长的数组和字符串,我想通过Alamofire发送,尽管我不知道如何将原始JSON作为参数发送。JSON看起来有点像 除了让它表现得像Swift数组然后进行序列化外,还有什么方法可以将这个JSON作为Alamofire中的参数传递? 谢谢! 编辑: 我能够在文本编辑器中发挥一些魔力来获取以Swift数组样式设置的参数(如所示),因此根据Eric的建议,将和制作成Diction
问题内容: 我在活动A中有一个整数数组: 而且我想将该变量发送到活动B,所以我创建了一个新意图并使用putExtra方法: 在活动BI中获取信息: 但这不是真正发送数组,我只是在arrayB上获得了值“ 0”。我一直在寻找一些例子,但没有发现任何事。 问题答案: 你正在使用数组设置额外内容。然后,你尝试获取单个int。 你的代码应为:
问题内容: 我在获取想要在JSON文件中的数据时遇到了一些麻烦。这是控制台输出的简化版本: 我正在尝试使用内置的JSON解析库来解析文件。这是我的方法中的解析器 : 我想将货币代码(如)与货币词典中包含的其他一些数据一起存储,但是现在我的应用崩溃了。错误代码: 似乎没有任何对象添加到 救命? 编辑:获取键以显示适当的数据填充其他字段显示: 问题答案: 您的数据不包含任何数组,而是所有字典,请尝试上
我尝试使用(version4.0)调用api来提交一些数据。我想请求已经成功了。但我遇到的麻烦是,当进行调用时,我从服务器得到一个0字节失败的响应。 我已经尝试了StackOverflow上当前的许多解决方案,但找不到解决方案。谢谢你的帮助。 以下是我的设置: