我无法解决在Alamofire
中给参数请求赋值的问题
我需要像这样输入数据:
[["code": 40, "counts": 10], ["code": 43, "counts": 5], ..]
我正在尝试:
let jsonObject = [["code": 40, "counts": 10], ["code": 43, "counts": 5]]
let json = JSON(jsonObject)
let jsonString = json.rawString(.utf8)!
let params = [.."others parameters":.., "order" : jsonString] as [String : Any]
Alamofire.request("http://...", method: .get, parameters: params).responseJSON { response in
效果很好
但是我需要从 UserDefaults
中放入这个数组,我正在尝试这样做:
var ordString = ""
override func viewDidLoad() {
super.viewDidLoad()
if let userArray = UserDefaults.standard.array(forKey: "products") as? [[String : String]] {
var text = "["
for user in userArray {
let quantNumber = user["quantityProd"] ?? ""
let codeNumber = user["codeProd"] ?? ""
text.append("""
["code": \(codeNumber), "counts": \(quantNumber)],
""")
}
text.removeLast(1)
text.append("]")
print(text) . // Give me [["code": 40, "counts": 10], ["code": 43, "counts": 5]]
ordString = text
在 Alamofire
中:
let jsonObject = ordString
let json = JSON(jsonObject)
let jsonString = json.rawString(.utf8)!
当发出请求时给我错误 JSON INPUT ERROR
最佳答案
您正在创建字符串而不是键值对
的数组
:
var arrayOfData = Array<Any>()
if let userArray = UserDefaults.standard.array(forKey: "products") as? [[String : String]] {
for user in userArray {
let dict = ["code": user["quantityProd"] ?? "","counts": user["codeProd"] ?? ""]
arrayOfData.append(dict)
}
}
let json = JSON(arrayOfData)
let jsonString = json.rawString(.utf8)!
let params = [.."others parameters":.., "order" : jsonString] as [String : Any]
我还更新了你关于你做错的最后一个问题,并在我的回答中给了你一个例子(演示)。请看:Swift UserDefaults get values from array
关于arrays - Swift Alamofire 将值赋给字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50203120/