我尝试向JSON类型的服务器发出放置请求,这给了我错误。 这是错误的详细信息。
由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'JSON写入中的类型无效 (_SwiftValue)'
这是代码。
var attdList : JSON = [:]
...
var clientsAry = attdList["clients"]
...
let params = ["clients" : clientsAry, "submitted" : 1]
...
Alamofire.request(url + req_task, method: .put, parameters: params, encoding: JSONEncoding(options: []), headers:headers).responseJSON { response in
...
我打印了params变量,它显示如下。 有人可以帮忙吗?
▿ 1 element
▿ 0 : 2 elements
- key : "clients"
▿ value : [
{
"id" : null,
"hours" : "0",
"client" : {
"id" : 2,
"name" : "Anders Andersson"
}
},
{
"id" : null,
"hours" : "1",
"client" : {
"id" : 4,
"name" : "Gun Gunsson"
}
},
{
"id" : null,
"hours" : "2",
"client" : {
"id" : 3,
"name" : "Johan Johansson"
}
},
{
"id" : null,
"hours" : "3",
"client" : {
"id" : 1,
"name" : "Maria Martinsson"
}
}
]
▿ rawArray : 4 elements
▿ 0 : 3 elements
▿ 0 : 2 elements
- key : "id"
- value : <null>
▿ 1 : 2 elements
- key : "hours"
- value : "0"
▿ 2 : 2 elements
- key : "client"
▿ value : 2 elements
▿ 0 : 2 elements
- key : "id"
- value : 2
▿ 1 : 2 elements
- key : "name"
- value : Anders Andersson
▿ 1 : 3 elements
▿ 0 : 2 elements
- key : "id"
- value : <null>
▿ 1 : 2 elements
- key : "hours"
- value : "1"
▿ 2 : 2 elements
- key : "client"
▿ value : 2 elements
▿ 0 : 2 elements
- key : "id"
- value : 4
▿ 1 : 2 elements
- key : "name"
- value : Gun Gunsson
▿ 2 : 3 elements
▿ 0 : 2 elements
- key : "id"
- value : <null>
▿ 1 : 2 elements
- key : "hours"
- value : "2"
▿ 2 : 2 elements
- key : "client"
▿ value : 2 elements
▿ 0 : 2 elements
- key : "id"
- value : 3
▿ 1 : 2 elements
- key : "name"
- value : Johan Johansson
▿ 3 : 3 elements
▿ 0 : 2 elements
- key : "id"
- value : <null>
▿ 1 : 2 elements
- key : "hours"
- value : "3"
▿ 2 : 2 elements
- key : "client"
▿ value : 2 elements
▿ 0 : 2 elements
- key : "id"
- value : 1
▿ 1 : 2 elements
- key : "name"
- value : Maria Martinsson
- rawDictionary : 0 elements
- rawString : ""
- rawNumber : 0
- rawNull : <null>
- rawBool : false
- type : SwiftyJSON.Type.array
- error : nil
答案 0 :(得分:1)
错误消息表明使用了非法类型(Parameters
),JSON仅支持string
,number
,<null>
和array
/ {{ 1}}。
您应该将JSON数据转换为String:
dictionary
然后将您的数据发送到服务器:
let jsonData = try JSONSerialization.dataWithJSONObject(attdList, options: .prettyPrinted) // first of all convert json to the data
let convertedString = String(data: jsonData, encoding: .utf8) // the data will be converted to the string