diff --git a/MVMCore/MVMCore/Models/JSON/JSONHelper.swift b/MVMCore/MVMCore/Models/JSON/JSONHelper.swift index a0c20d0..775048d 100644 --- a/MVMCore/MVMCore/Models/JSON/JSONHelper.swift +++ b/MVMCore/MVMCore/Models/JSON/JSONHelper.swift @@ -18,6 +18,30 @@ public enum JSONError: Error { case error(message: String) } +extension JSONError: LocalizedError, CustomStringConvertible { + + public var description: String { + switch self { + case .pathNotFound: + return "JSON path not found" + case .data(path: let path): + return "JSON data in \(path) is corrupt" + case .other(error: let error): + if let decodingError = error as? DecodingError { + // the only way to get the decoding error description and details... + return (decodingError as NSError).description + } + return error.localizedDescription + case .error(message: let message): + return message + } + } + + public var errorDescription: String? { + return description + } +} + extension JSONDictionary { public func toJSONString(options: JSONSerialization.WritingOptions = []) throws -> String {