用于 JSON 的 RxSwift 封装。
这是一个将 JSON 字典 observable 转换为字符串 observable 的示例
URLSession.shared.rx.json(url: "https://api.github.com/repos/ReactorKit/ReactorKit")
.mapJSON("owner") // Observable<Any> -> Observable<Any>
.mapJSON("login", String.self) // Observable<Any> -> Observable<String>
.bind(to: ownerNameLabel.rx.text)
mapJSON()
支持 JSON 字典和数组
// Dictionary
Observable<Any>.mapJSON("key") // Observable<Any>
Observable<Any>.mapJSON("key", Int.self) // Observable<Int>
// Array
Observable<Any>.mapJSON(at: 2) // Observable<Any>
Observable<Any>.mapJSON(at: 3, String.self) // Observable<String>
当给定的访问器没有值或无法转换为给定的类型时,mapJSON()
将抛出一个 RxJSONError
错误
// Dictionary
source.mapJSON("unknownKey") // Event.error(RxJSONError.valueNotFound)
source.mapJSON("name", Int.key) // Event.error(RxJSONError.castingFailed)
// Array
source.mapJSON(at: -1) // Event.error(RxJSONError.valueNotFound)
source.mapJSON(at: 0, Int.key) // Event.error(RxJSONError.castingFailed)
使用 CocoaPods:
pod 'RxJSON'
使用 Carthage:
尚未支持。请查看 Carthage#1945 了解详情。
欢迎任何讨论和 pull request 💖
创建 Xcode 项目
$ swift package generate-xcodeproj
RxJSON 使用 MIT 许可。 请查看 LICENSE 文件了解更多信息。