Swift 5 JSON解码器解码 JSON 字段名称具有 space 例如 "post title": "Hello World"

Swift 5 JSONDecoder decode JSON with field name having a space eg "post title": "Hello World"

我目前正在使用 JSON 解码器将 json 解析为 Swift 5 的对象。我现在才意识到 JSON 的一部分是错误的JSON。它的字段名称带有 space:"Post Title"。我不确定为什么会这样,而且我知道像这样设置 JSON 是不好的做法,但在 JSON 方面我无能为力。有没有办法使用 JSON 解码器按原样获取该字段?

我对此进行了大量研究,但由于这是一个糟糕的 json 问题,除了创建自定义 decoder/deserializer(我正在尝试避免)。

JSON:

{
    "Post Title":"Hello World"
}

结构:

struct Post: Decodable {
    var PostTitle: String
}

解码器:

let jsonObject = try jsonDecoder.decode(Post.self, from: responseData)

提前致谢!

对于自定义键,使用 CodingKeys 匹配 JSON 键。

struct Post : Codable {

    var PostTitle: String

    private enum CodingKeys : String, CodingKey {
        case PostTitle = "Post Title"
    }
}

注意:您应该使用小写的变量首字母。