swift - 将字符串解析为 Swift 中的对象
问题描述
我已经从服务器收到了这个响应,并且我确信必须有一种更有效的方法将其转换为对象。
我有以下回应:
[
id=2997,rapidViewId=62,state=ACTIVE,name=Sprint7,startDate=2018-11-20T10:28:37.256Z,endDate=2018-11-30T10:28:00.000Z,completeDate=<null>,sequence=2992,goal=none
]
如何以最简单的方式将其很好地转换为格式良好的 swift 对象?
这是我的尝试,它只给了我 Sprint 值
if sprintJiraCustomField.count > 0 {
let stringOutput = sprintJiraCustomField.first?.stringValue // convert output to String
let name = stringOutput?.components(separatedBy: "name=") // get name section from string
let nameFieldRaw = name![1].components(separatedBy: ",") // split out to the comma
let nameValue = nameFieldRaw.first!
sprintDetail = nameValue// show name field
}
解决方案
不知道你想要什么格式,但下面的代码会产生一个元组数组(键,值),但所有值都是字符串,所以我想之后需要另一个转换
let items = stringOutput.components(separatedBy: ",").compactMap( {pair -> (String, String) in
let keyValue = pair.components(separatedBy: "=")
return (keyValue[0], keyValue[1])
})