我目前正在使用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)
提前谢谢!
答案 0 :(得分:3)
对于自定义密钥,请使用CodingKeys
来匹配JSON密钥。
struct Post : Codable {
var PostTitle: String
private enum CodingKeys : String, CodingKey {
case PostTitle = "Post Title"
}
}
注意:您应该对变量使用小写字母命名。