Transformers

所属分类:其他
开发工具:Swift
文件大小:0KB
下载次数:0
上传日期:2018-04-12 06:23:05
上 传 者sh-1993
说明:  使用Swift编程语言的强大功能优雅地转换JSON等数据的框架。,
(A framework to transform data like JSON elegantly using the power of Swift programming language.,)

文件列表:
Package.swift (770, 2018-04-11)
Sources/ (0, 2018-04-11)
Sources/Transformers/ (0, 2018-04-11)
Sources/Transformers/Data+Extensions.swift (1420, 2018-04-11)
Sources/Transformers/Dictionary+Extensions.swift (705, 2018-04-11)
Transformers-macOS/ (0, 2018-04-11)
Transformers-macOS/Info.plist (879, 2018-04-11)
Transformers-macOS/Transformers_macOS.h (558, 2018-04-11)
Transformers-tvOS/ (0, 2018-04-11)
Transformers-tvOS/Info.plist (774, 2018-04-11)
Transformers-tvOS/Transformers_tvOS.h (551, 2018-04-11)
Transformers.xcodeproj/ (0, 2018-04-11)
Transformers.xcodeproj/project.pbxproj (28478, 2018-04-11)
Transformers.xcodeproj/xcshareddata/ (0, 2018-04-11)
Transformers.xcodeproj/xcshareddata/xcschemes/ (0, 2018-04-11)
Transformers.xcodeproj/xcshareddata/xcschemes/Transformers-iOS.xcscheme (3734, 2018-04-11)
Transformers.xcodeproj/xcshareddata/xcschemes/Transformers-macOS.xcscheme (2913, 2018-04-11)
Transformers.xcodeproj/xcshareddata/xcschemes/Transformers-tvOS.xcscheme (3748, 2018-04-11)
Transformers/ (0, 2018-04-11)
Transformers/Info.plist (774, 2018-04-11)
Transformers/Transformers.h (516, 2018-04-11)
TransformersTests/ (0, 2018-04-11)
TransformersTests/DataExtensionTests.swift (3294, 2018-04-11)
TransformersTests/DictionaryExtensionTests.swift (1541, 2018-04-11)
TransformersTests/Info.plist (701, 2018-04-11)

[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Platform](https://img.shields.io/badge/Platform-iOS|macOS|tvOS-4BC51D.svg?style=flat)](https://github.com/webfrogs/Transformers) [![Swift Package Manager compatible](https://img.shields.io/badge/Swift%20Package%20Manager-compatible-brightgreen.svg)](https://github.com/apple/swift-package-manager) *Transformers* is a framework to transform things elegantly using the power of Swift programming language. > Note: Support Swift version: 4.1 or newer ## Feature - Cast JSON data with type. - Cast a swift dictionary to swift model which confirms `Codable` protocol. - Cast a swift array whose item type is dictionary to swift model array whose items confirm `Codable` protocol. ## Installation ### Manual Download the project, and drag the `Core` folder to your project. ### Carthage Add this to `Cartfile` ``` github "webfrogs/Transformers" ~> 1.0 ``` ### Swift Package Manager ``` dependencies: [ .package(url: "https://github.com/webfrogs/Transformers.git", .upToNextMinor(from: "1.0.0")), ] ``` ## Usage The most common scene in iOS programming is handle JSON data. ### Handle JSON ```swift let jsonString = """ {"key1": "value2"} """ let value1: String? = jsonString.data(using: String.Encoding.utf8) .flatMap({$0.toDictionary()}) .flatMap({$0.value(key: "key1")}) print(value1 ?? "") ``` ### RxSwift If you also use [RxSwift](https://github.com/ReactiveX/RxSwift) in your project. *Transformers* can be easily integrated with RxSwift, and there is no need to transform JSON data fetched from http server to a model manually. All you have to do is define a model which confirms *Codable* protocol and use *Transformers* with the *map* function provided by RxSwift. Here is a demo code: ```swift struct GithubAPIResult: Codable { let userUrl: String let issueUrl: String enum CodingKeys: String, CodingKey { case userUrl = "user_url" case issueUrl = "issues_url" } } let request = URLRequest(url: URL(string: "https://api.github.com")!) let apiResult: Observable = URLSession.shared .rx.data(request: request) .map(Data.jsonToModelHandler) apiResult.subscribe(onNext: { (result) in print(result) }).disposed(by: kDisposeBag) ```

近期下载者

相关文件


收藏者