I have a 2 class , one of them inherited from base class
Base class
class Member : NSObject , Codable{
var Address : String?
var BriefDescription : String?
var City : String?
}
This is my inherited class :
class MemberSingUp : Member {
var Password : String?
var passwordAgain : String?
var referansNumber : String?
}
I created and object then load datas into it.
    var newMember = MemberSingUp()
    newMember.Address = "Adress"
    newMember.BriefDescription = "BriefDescription"
    newMember.City = "City"
     
    newMember.Password = "123456"
Then I try to encode this model like
        var memberJson : String = ""
    do{
        let jsonEncoder = JSONEncoder()
        let jsonData = try jsonEncoder.encode(newMember)
       
        memberJson = String(data: jsonData, encoding: String.Encoding.utf8)!
    }catch{}
    print(memberJson)
This memberJson is {"Address":"Adress","BriefDescription":"BriefDescription","City":"City"}.
Password doesnt encode
So,Why inherited class object doesn't encoding?
UPDATE: According to Comment I use
required init(from decoder: Decoder) throws {
    let container = try decoder.container(keyedBy: CodingKeys.self)
    let superdecoder = try container.superDecoder()
    try super.init(from: superdecoder)
    Password = try container.decode(String.self, forKey: .Password)
    
}
override func encode(to encoder: Encoder) throws {
    var container = encoder.container(keyedBy: CodingKeys.self)
    try container.encode(Password, forKey: .Password)
    let superencoder = container.superEncoder()
    try super.encode(to: superencoder)
}
It changes the json like :
{"Password":"1234567","super":{"Address":"Address","BriefDescription":"BriefDescription","City":"City"}}
How can I delete this super key
 
    