12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- import Foundation
- public struct DictionaryTransform<Key, Value>: TransformType where Key: Hashable, Key: RawRepresentable, Key.RawValue == String, Value: Mappable {
-
- public init() {
-
- }
-
- public func transformFromJSON(_ value: Any?) -> [Key: Value]? {
-
- guard let json = value as? [String: Any] else {
-
- return nil
- }
-
- let result = json.reduce([:]) { (result, element) -> [Key: Value] in
-
- guard
- let key = Key(rawValue: element.0),
- let valueJSON = element.1 as? [String: Any],
- let value = Value(JSON: valueJSON)
- else {
-
- return result
- }
-
- var result = result
- result[key] = value
- return result
- }
-
- return result
- }
-
- public func transformToJSON(_ value: [Key: Value]?) -> Any? {
-
- let result = value?.reduce([:]) { (result, element) -> [String: Any] in
-
- let key = element.0.rawValue
- let value = element.1.toJSON()
-
- var result = result
- result[key] = value
- return result
- }
-
- return result
- }
- }
|