【发布时间】:2018-02-06 10:20:22
【问题描述】:
CodingKey 是否可以仅用于JSONEncoder 而JSONDecoder 使用默认成员名称?
示例我有以下结构
var str = """
{
"name": "Endeavor",
"abv": 8.9,
"brewery": "Saint Arnold",
"style": "ipa"
}
"""
enum BeerStyle:String,Codable {
case ipa
case stout
case kolsch
}
struct Beer : Codable {
let name : String
let brewery : String
let style : BeerStyle
let abv : Float
// THIS SHOULD BE USED ONLY FOR JSONEncoder ?
enum CodingKeys:String,CodingKey {
case name
case abv = "alcohol_by_volume"
case brewery = "brewery_name"
case style
}
}
let jsonData = str.data(using: .utf8)!
let decoder = JSONDecoder() // how to to make it not to use Coding key
let beer = try! decoder.decode(Beer.self, from: jsonData)
因为有enum CodingKeys:String,CodingKey,所以无法正常工作
任何人都可以建议我一个想法或链接?
【问题讨论】:
-
(是"kölsch",而不是“kolsch”???? :)