首页 > 解决方案 > 将字符串解析为 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
                        }

标签: swift

解决方案


不知道你想要什么格式,但下面的代码会产生一个元组数组(键,值),但所有值都是字符串,所以我想之后需要另一个转换

let items = stringOutput.components(separatedBy: ",").compactMap( {pair -> (String, String) in
    let keyValue = pair.components(separatedBy: "=")
    return (keyValue[0], keyValue[1])
})

推荐阅读