iOS swift json PUT请求参数中的字符串数组

时间:2016-07-12 06:34:51

标签: ios json swift alamofire swifty-json

我正在与Alamofire和SwiftyJSON合作。 我正在尝试使用以下结构发出请求

{
    "email":"ppp@ppp.com",
    "password":"pppppp",
    "categories": [
        {"id":"2"},
        {"id":"1"},
        {"id":"6"},
        {"id":"5"}       
        ]
}

我正在使用:

let parameters = [     
                       "email" : userEmail,
                  "categories" : userPassword,
                  "categorias" : selectedCategoriesArray]

//where selectedCategoriesArray is a [[String]]()

我使用修改数组的这一行填充我的selectedCategoriesArray:

selectedCategoriesArray.append(["id", "2"]) //where 2 can be any other number

Alamofire.request( .PUT, url, parameters)

它似乎工作正常,但事实并非如此,我不知道我的String数组是否采用了正确的格式发送给WS,还是需要以特殊方式对其进行编码?

有没有人使用过这样的东西,一点帮助就会受到赞赏。 谢谢!

2 个答案:

答案 0 :(得分:1)

我认为你的数组在这种情况下的类型应该是[[String: String]]

let userEmail = "myemail@email.com"
let userPassword = "123456"

var selectedCategoriesArray: [[String: String]] = []
for i in 0...5 {
  selectedCategoriesArray.append(["id": String(i)])
}

let parameters = [
  "email" :      userEmail,
  "password" :   userPassword,
  "categories" : selectedCategoriesArray
]

答案 1 :(得分:0)

请查看以下

let savedData = ["id": 1, "id": 2]

let jsonObject: [String: AnyObject] = [
    "email": “xyz@yopmail.com”,
    "password": 123456,
    "categories": savedData
]

let valid = NSJSONSerialization.isValidJSONObject(jsonObject) // true