Swift 5 JSONDecoder 解码带有空格的字段名称的 JSON,例如“帖子标题”:“Hello World”

voo*_*uju 0 json swift jsondecoder swift5

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

我已经对此进行了大量研究,但是由于这是一个错误的 json 问题,除了创建自定义解码器/解串器(我试图避免)之外,我在网上找不到太多东西。

JSON:

{
    "Post Title":"Hello World"
}
Run Code Online (Sandbox Code Playgroud)

结构:

struct Post: Decodable {
    var PostTitle: String
}
Run Code Online (Sandbox Code Playgroud)

解码器:

let jsonObject = try jsonDecoder.decode(Post.self, from: responseData)
Run Code Online (Sandbox Code Playgroud)

先感谢您!

Gus*_*cht 8

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

struct Post : Codable {

    var PostTitle: String

    private enum CodingKeys : String, CodingKey {
        case PostTitle = "Post Title"
    }
}
Run Code Online (Sandbox Code Playgroud)

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