我想使用Alamofire发送数组。
我有什么
let params: Parameters = [
id:job.id ?? 0,
]
我还必须以这种格式将数组发送到后端
jobs[0]=1, jobs[1]=2
等
我的关键是作业[0],值为1
这是Java上的平等
for (int i = 0; i < size; i++) {
final int id = job.getPuIds().get(i);
params.put("job" + "[" + i + "]", String.valueOf(id));
}
我怎么能这样做?
答案 0 :(得分:2)
以下是如何使用swift语法打印所需字符串的示例:
for i in 0...jobs.count-1 {
print("job[\(i)]=\(jobs[i].id)")
}
但我认为你应该试试这个:
发送包含键“jobs”的字典,并将数组作为该键的值。
var ids = [Int]()
for job in jobs {
ids.append(job.id)
}
var params = ["jobs":ids]
编辑:清洁代码 - 特别感谢@Alexander
let params = ["jobs": jobs.map{ $0.id }]
答案 1 :(得分:0)
在Java中实现之后,您可以使用以下方法在Swift中执行相同的操作:
var params: [String:Any] = [:]
for (index, _) in yourArray.enumerated() {
let id = job.getPuIds()[index]
params["job[\(index)]", "\(id)"]
}
查看您的实现我认为我可以猜测size
变量基于job.getPuIds()
中返回的内容,在这种情况下代码可以简化:
var params: [String:Any] = [:]
for (index, id) in job.getPuIds().enumerated() {
params["job[\(index)]", "\(id)"]
}