arrays - 快速将数组发送到 Web 服务参数
问题描述
我想将数组对象发送到 Web 服务,但是当我尝试将数组添加到参数时它会出错。我尝试了很多东西,但没有发现任何有用的东西。
我想添加("assignees" : newList)
参数,然后将其发送到 Web 服务
这是我的代码
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"}]],
当我手动将受让人添加到 patmeters 时,没关系。
[["assignedTo":"63659","assignedSurname":"DAVID","assignedType":"PERSONEL","assignedName":"JOE","assignedEmail":"joe@abc.com"},{"assignedTo":"21026","assignedSurname":"GEORGE","assignedType":"PERSONEL","assignedName":"MICHAEL","assignedEmail":"michael@abc.com"]],
解决方案
我用下面的代码解决了这个问题:
var assigneesList = [[String:Any]]()
for a in task.YeniGorevAtamaList! {
assigneesList.append(
["assignedTo":(a.Id) ?? "0",
"assignedSurname":a.Surname ?? "",
"assignedType":a.assignedType ?? "PERSONEL",
"assignedName":a.Name ?? "",
"assignedEmail":a.Email as Any
]
);
}
let parameters = [
"taskType" :
[
"code" : "DIGER"
],
"assignees" : assigneesList ,
"taskUrls" :
[
]
] as [String : Any]
推荐阅读
- python - Pyyaml,在 Python 中访问字典
- c - MPI 4 个总进程被杀死(一些可能在清理过程中被 mpirun 杀死)
- ruby - 仅验证嵌套属性 rails 的前两个构建对象标题属性
- c# - 如何解释 ASP.NET Core 2.1 中的 Serilog 配置?
- android - com.android.volley.ServerError 错误 instanceof VolleyError
- javascript - 在javascript中获得两个不同时间的相同unix时间戳
- ios - 如何对字符串格式的时间数组求和
- java - OffsetDateTime 字段 java8:无法从 TemporalAccessor 获取 OffsetDateTime
- java - Vaadin 8 Grid 的奇怪错误
- sql - SQL 服务器:根据值对它们进行分组