首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >子对象的Swift JSONEncoder().encode

子对象的Swift JSONEncoder().encode
EN

Stack Overflow用户
提问于 2018-08-02 16:55:04
回答 1查看 175关注 0票数 0

我有一个带有几个方法和属性的父类:

代码语言:javascript
复制
class Animal {
   var var1: ...
   var var2: ...

   func func1() {}
   func func2() {}
}

和Child类:

代码语言:javascript
复制
class Dog: Animal, Codable {
   var name = ""
}

我需要向父类添加一个方法,它将返回子类的JSONEncoder().encode结果。类似于:

代码语言:javascript
复制
let dog = Dog()
dog.name = "Bob"
let jsonString = dog.jsonString() // {"name":"Bob"}

我能这么做吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-02 17:01:20

只需使用encode…的结果创建一个String

代码语言:javascript
复制
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"}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51649502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档