Skip to content

Instantly share code, notes, and snippets.

@appler1009
Created March 29, 2020 18:27
Show Gist options
  • Select an option

  • Save appler1009/8a64b8e10a2d93d8ab293dac8a3abf64 to your computer and use it in GitHub Desktop.

Select an option

Save appler1009/8a64b8e10a2d93d8ab293dac8a3abf64 to your computer and use it in GitHub Desktop.
A JSON version of CustomStringConvertible in Swift
import Foundation
public protocol JSONStringConvertible: Codable, CustomStringConvertible { }
extension JSONStringConvertible {
public var description: String {
let encoder = JSONEncoder()
do {
let data = try encoder.encode(self)
return String(data: data, encoding: .utf8)!
} catch { // EncodingError.invalidValue
return "\(String(describing: type(of: self)))"
}
}
}
@appler1009
Copy link
Copy Markdown
Author

So you can do something like:

struct LaunchInfo: JSONStringConvertible {
...
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment