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

时间:2019-08-19 22:44:12

标签: json swift swift5 jsondecoder

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

我对此进行了大量研究,但是由于这是JSON格式不佳的问题,除了创建自定义解码器/解串器(我试图避免这种情况)之外,我在网上找不到更多的东西。

JSON:

{
    "Post Title":"Hello World"
}

结构:

struct Post: Decodable {
    var PostTitle: String
}

解码器:

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

提前谢谢!

1 个答案:

答案 0 :(得分:3)

对于自定义密钥,请使用CodingKeys来匹配JSON密钥。

struct Post : Codable {

    var PostTitle: String

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

注意:您应该对变量使用小写字母命名。