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"
}
}
注意:您应该使用小写的变量首字母。
我目前正在使用 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"
}
}
注意:您应该使用小写的变量首字母。