- 授权协议: MIT
- 开发语言: Swift
- 操作系统: 跨平台
- 软件首页: https://github.com/LinXunFeng/MoyaMapper
- 软件文档: https://github.com/LinXunFeng/MoyaMapper/blob/master/README.md
- 官方下载: https://github.com/LinXunFeng/MoyaMapper
软件介绍
MoyaMapper是基于 Moya 和 SwiftyJSON 封装的工具,以 Moya 的 plugin 的方式来实现间接解析,支持RxSwift 。
Usage
一、注入
定义一个继承于ModelableParameterType的类
final class NetParameter : ModelableParameterType {
var successValue: String {
return "false"
}
var statusCodeKey: String {
return "error"
}
var tipStrKey: String {
return ""
}
var modelKey: String {
return "results"
}
}以plugin的方式传递给MoyaProvider
let lxfNetTool = MoyaProvider<LXFNetworkTool>(plugins: [MoyaMapperPlugin(NetParameter())])
二、定义模型
创建一个继承于Modelable的结构体
struct MyModel: Modelable {
var _id = ""
......
init?(_ json: JSON) {
}
mutating func mapping(_ json: JSON) {
self._id = json["_id"].stringValue
......
}
}三、解析
这里只贴出主要代码
Normal
lxfNetTool.request(.data(type: .all, size: 10, index: 1)) { result in
guard let response = result.value else { return }
// Models
guard let models = try? response.mapArray(MyModel.self) else {return}
for model in models {
print("id -- \(model._id)")
}
// 使用自定义模型参数类
/*
guard let models = try? response.mapArray(MyModel.self, params: { () -> (ModelableParameterType) in
return CustomParameter()
}) else {return}
*/
}Rx
// let rxRequest: Single<Response>
// MARK: Rx
let rxRequest = lxfNetTool.rx.request(.data(type: .all, size: 10, index: 1))
// Models
rxRequest.mapArray(MyModel.self).subscribe(onSuccess: { models in
for model in models {
print("id -- \(model._id)")
}
}).disposed(by: dispseBag)
// Models + Result
rxRequest.mapArrResult(MyModel.self).subscribe(onSuccess: { (result, models) in
print("isSuccess --\(result.0)")
print("tipStr --\(result.1)")
print("models count -- \(models.count)")
}).disposed(by: dispseBag)
// 获取指定路径的值
rxRequest.fetchString(keys: [0, "_id"]).subscribe(onSuccess: { str in
print("str -- \(str)")
}).disposed(by: dispseBag)JSON数据对照
为方便理解,这里给出具体使用JSON数据图,结合 Example食用更佳~
CocoaPods
默认安装
MoyaMapper默认只安装Core下的文件
pod 'MoyaMapper'
RxSwift拓展
pod 'MoyaMapper/Rx'
License
MoyaMapper is available under the MIT license. See the LICENSE file for more info.
Author
LinXunFeng
email: 598600855@qq.com
Blogs
Beginning ARKit for iPhone and iPad
Wallace Wang / Apress / 2018-11-5 / USD 39.99
Explore how to use ARKit to create iOS apps and learn the basics of augmented reality while diving into ARKit specific topics. This book reveals how augmented reality allows you to view the screen on ......一起来看看 《Beginning ARKit for iPhone and iPad》 这本书的介绍吧!
在线进制转换器
各进制数互转换器
图片转BASE64编码
在线图片转Base64编码工具

