Skip to content

Instantly share code, notes, and snippets.

@foxicode
Created March 3, 2020 18:34
Show Gist options
  • Save foxicode/bc4054fd46deb4a92b3258f3391c3ecf to your computer and use it in GitHub Desktop.
Save foxicode/bc4054fd46deb4a92b3258f3391c3ecf to your computer and use it in GitHub Desktop.
Swift extensions for converting dictionaries and arrays to json strings and back
import Foundation
extension Data {
init?(json: Any) {
guard let data = try? JSONSerialization.data(withJSONObject: json, options: .fragmentsAllowed) else { return nil }
self.init(data)
}
func jsonToDictionary() -> [String: Any]? {
(try? JSONSerialization.jsonObject(with: self, options: .allowFragments)) as? [String: Any]
}
func jsonToArray() -> [Any]? {
(try? JSONSerialization.jsonObject(with: self, options: .allowFragments)) as? [Any]
}
}
import Foundation
extension String {
init?(json: Any) {
guard let data = Data(json: json) else { return nil }
self.init(decoding: data, as: UTF8.self)
}
func jsonToDictionary() -> [String: Any]? {
self.data(using: .utf8)?.jsonToDictionary()
}
func jsonToArray() -> [Any]? {
self.data(using: .utf8)?.jsonToArray()
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment