Node.js 如何在Swift中发布阵列?(正在向我的服务器获取字节)
我正试图使用阿拉莫菲尔在Swift中发布一个数组 这是我的Swift代码:Node.js 如何在Swift中发布阵列?(正在向我的服务器获取字节),node.js,swift,swift3,alamofire,Node.js,Swift,Swift3,Alamofire,我正试图使用阿拉莫菲尔在Swift中发布一个数组 这是我的Swift代码: var itemsToSend: [Dictionary<String, Any>] = [] for i in 0..<selectedSongs.count { let app = ["Info" : selected[i]["Info"]!] itemsToSend.append(app) }
var itemsToSend: [Dictionary<String, Any>] = []
for i in 0..<selectedSongs.count {
let app = ["Info" : selected[i]["Info"]!]
itemsToSend.append(app)
}
let toSend = try! JSONSerialization.data(withJSONObject: itemsToSend, options: [])
print(toSend) //142 bytes
let data: [String: Any] = [
"UID": FIRAuth.auth()?.currentUser?.uid as Any as! String,
"ID": "-",
"total" : selected.count,
"sendArray" : toSend
]
let URLString = "http://www.example.com/mult/"
Alamofire.request(URLString, method: .post, parameters: data, encoding: URLEncoding.default).responseString(completionHandler: { response in
print(response.result.value)
})
var itemsToSend:[字典]=[]
对于0中的i..不转换数据,只需使用键设置数组sendArray
let data: [String: Any] = [
"UID": FIRAuth.auth()?.currentUser?.uid!,
"ID": "-",
"total" : selected.count,
"sendArray" : itemsToSend
]
如果您使用的是Alamofire,则不需要使用JSONSerialization
,在发送请求时使用JSONEncoding.default
作为编码选项
let data:[String: Any] = ["foo":"bar", "items":["this", "is", "an", "array"]]
// use JSONEncoding.default instead
Alamofire.request(URLString, method: .post, parameters: data, encoding: JSONEncoding.default).responseString(completionHandler: { response in
print(response.result.value)
})
在服务器端,您需要使用JSON解码器而不是URL解码器来解码帖子正文尝试过了,当我在服务器上打印时,我得到了未定义的。@user82395214然后检查sendArray
键是否为该键。我不确定您的意思是什么console.log(req.body.sendary)
productsundefined
@user82395214将编码更改为JSONEncoding.default
中的URLEncoding.default
。