How to serialize or convert Swift objects to JSON?

后端 未结 9 1739
灰色年华
灰色年华 2020-11-28 03:33

This below class

class User: NSManagedObject {
  @NSManaged var id: Int
  @NSManaged var name: String
}

Needs to be converted to

9条回答
  •  一向
    一向 (楼主)
    2020-11-28 03:52

    Some of the above answers are completely fine, but I added an extension here, just to make it much more readable and usable.

    extension Encodable {
        var convertToString: String? {
            let jsonEncoder = JSONEncoder()
            jsonEncoder.outputFormatting = .prettyPrinted
            do {
                let jsonData = try jsonEncoder.encode(self)
                return String(data: jsonData, encoding: .utf8)
            } catch {
                return nil
            }
        }
    }
    
    struct User: Codable {
         var id: Int
         var name: String
    }
    
    let user = User(id: 1, name: "name")
    print(user.convertToString!)
    

    //This will print like the following:

    {
      "id" : 1,
      "name" : "name"
    }
    

提交回复
热议问题