RxJSON
RxSwift 的 JSON 包装器。
快速了解
这是一个将 JSON 字典可观察对象转换为字符串可观察对象的示例
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
贡献
任何讨论和拉取请求都非常欢迎
创建 Xcode 项目
$ swift package generate-xcodeproj
许可协议
RxJSON 采用 MIT 许可协议。更多信息请查看LICENSE文件。