最近我加入了一个项目并从符合我想出的这个扩展的类型Codable
中获取一个对象,JSON
Encodable
extension Encodable {
/// Converting object to postable JSON
func toJSON(_ encoder: JSONEncoder = JSONEncoder()) -> [String: Any] {
guard let data = try? encoder.encode(self),
let object = try? JSONSerialization.jsonObject(with: data, options: .allowFragments),
let json = object as? [String: Any] else { return [:] }
return json
}
}
这很好用,但有没有更好的方法来达到同样的效果?