import UIKit
var data = """
{
"A": "A",
"B": "B",
"C": "C",
}
"""
class A : Codable {
var A:String = "A"
enum CodingKeys: String, CodingKey {
case A = "A"
}
func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(A, forKey: .A)
}
}
class B: A {
var B:String = "B"
enum CodingKeys: String, CodingKey {
case B = "B"
case A = "A"
}
override func encode(to encoder: Encoder) throws {
var container = encoder.container(keyedBy: CodingKeys.self)
try container.encode(B, forKey: .B)
try container.encode(A, forKey: .A)
}
}
var b = B()
b.A = "やべい"
b.B = "すごい"
var enc = try! JSONEncoder().encode(b)
print(String(data: enc, encoding: .utf8)!)
var a = A()
a.A = "どすこい"
var enc1 = try! JSONEncoder().encode(a)
print(String(data: enc1, encoding: .utf8)!)