我有一个包含多个方法和属性的父类:
class Animal {
var var1: ...
var var2: ...
func func1() {}
func func2() {}
}
和子类:
class Dog: Animal, Codable {
var name = ""
}
我需要向父类添加一个方法,该方法将为子类返回 JSONEncoder().encode
的结果。像这样的东西:
let dog = Dog()
dog.name = "Bob"
let jsonString = dog.jsonString() // {"name":"Bob"}
我可以这样做吗?
最佳答案
用encode
的结果创建一个String
...
extension Encodable {
func jsonString() -> String {
let data = try! JSONEncoder().encode(self)
return String(data: data, encoding: .utf8)!
}
}
let dog = Dog()
dog.name = "Bob"
dog.jsonString()
// {"name":"Bob"}
关于子对象的 Swift JSONEncoder().encode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51649502/