如何在 Swift 5 中解析具有不同数据的响应字符串

how to parse response string with different data in swift 5

提问人:janubhai 提问时间:4/20/2022 更新时间:4/20/2022 访问量:528

问:

我需要解析以下示例字符串以获取状态和代码,并将其绑定到结构“ErrorData”。

字符串 1 -("{\n \"errors\" : [ {\n \"status\" : \"400\",\n \"code\" : \"INVALID_DATA\"\n } ]\n}")

字符串2 -"{\n \"errors\" : [ {\n \"status\" : \"404\",\n \"code\" : \"INVALID_AUTH\"\n } ]\n}")

public struct ErrorData  {
    var errorStatus: String?
    var errorCode: String?
}

这些只是 2 个示例字符串,还会有更多具有不同状态和代码值的相同格式的字符串。 如何使用如上所示的格式解析上述字符串。

iOS 字符串 解析 结构 swift5

评论


答:

2赞 vadian 4/20/2022 #1

这是 JSON。这些结构与数据匹配

struct ErrorData : Decodable {
    let errors : [ErrorItem]
}

struct ErrorItem : Decodable {
    let status, code : String
}

解析它

let jsonString = """
{"errors":[{"status":"400","code":"INVALID_DATA"}]}
"""

do {
    let result = try JSONDecoder().decode(ErrorData.self, from: Data(jsonString.utf8))
    for item in result.errors {
        print(item.status, item.code)
    }
} catch {
    print(error)
}