【发布时间】:2019-10-18 15:00:40
【问题描述】:
我想将数组对象发送到 Web 服务,但是当我尝试将数组添加到参数时它会出错。我尝试了很多东西,但没有发现任何有用的东西。
我想在参数中添加("assignees" : newList),然后将其发送到网络服务
这是我的代码
var newList = [Assignee]()
var assignee = Assignee()
for u in task.NewWorkList! {
assignee = Assignee()
assignee.assignedEmail = u.Email
assignee.assignedName = u.Name
assignee.assignedSurname = u.Surname
assignee.assignedType = "PERSONEL"
assignee.assignedTo = String(u.Id!)
newList.append(assignee)
}
// in this part newList is an array of assignees.
var assigneeListString = ""
let jsonEncoder = JSONEncoder()
do {
let jsonData = try jsonEncoder.encode(newList)
assigneeListString = String(data: jsonData, encoding: .utf8)!
print("assigneeListString:",assigneeListString)
} catch {
print("error:::")
}
var parameters = [
"taskType" :
[
"code" : "OTHER"
],
"complateButtons": "COMPLATE",
"assignees" : [JSON(assigneeListString)], // does not work
// "assignees" : [JSON(newList)], // does not work
// "assignees" : JSON(newList), // does not work
// "assignees" : newList, // does not work
// "assignees" : assigneeListString, // does not work
"repeatTimeType":"NEVER"
] as [String : Any]
print("parameters:",parameters)
DAL.Service.MakeRequest(url: Constants.Service.Url.newTask,
parameters : parameters,
httpMethod : ServiceMethods.post.rawValue,
resultFunc: serviceResultFunc)
当我打印参数受理人部分添加额外的分号,
[[{"assignedTo":"63659","assignedSurname":"DAVID","assignedType":"PERSONEL","assignedName":"JOE","assignedEmail":"joe@abc.com"},{"assignedTo":"21026","assignedSurname":"GEORGE","assignedType":"PERSONEL","assignedName":"MICHAEL","assignedEmail":"michael@abc.com"}]],
当我手动将受理人添加到 patameters 时,没问题。
[["assignedTo":"63659","assignedSurname":"DAVID","assignedType":"PERSONEL","assignedName":"JOE","assignedEmail":"joe@abc.com"},{"assignedTo":"21026","assignedSurname":"GEORGE","assignedType":"PERSONEL","assignedName":"MICHAEL","assignedEmail":"michael@abc.com"]],
【问题讨论】:
-
也许:
"assignees" = try? JSONSerialization.jsonObject(with: jsonData)?