简体   繁体   English

Swift Alamofire将价值放在字符串上

[英]Swift Alamofire put value to string

I can't solve the problem in putting value to parameters request in Alamofire 我无法解决在Alamofire为参数请求Alamofire

Im need to put data like : 我需要把像这样的数据:

[["code": 40, "counts": 10], ["code": 43, "counts": 5], ..]

Im trying : 我正在努力 :

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

And It's works great 而且效果很好

But this array Im need to put from UserDefaults and Im trying to do it like so: 但是我需要从UserDefaults放入此数组,而Im试图这样做:

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

And in Alamofire : Alamofire

let jsonObject = ordString
let json = JSON(jsonObject)
let jsonString = json.rawString(.utf8)!

And when make request give me error JSON INPUT ERROR 当make请求给我错误时JSON INPUT ERROR

You are creating string instead of Array of key-value pair : 您正在创建字符串而不是key-value pair Array

    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]

I have also updated you on your last question that you are doing wrong and also give you a example(demo) in my answer. 我还向您更新了您最近做错的问题,并在回答中举了一个例子(演示)。 Please have a look: Swift UserDefaults get values from array 请看一下: Swift UserDefaults从数组获取值

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM