测试已测试 | ✓ |
语言语言 | SwiftSwift |
许可证 | MIT |
发布最近发布 | Mar 2017 |
SwiftSwift 版本 | 3.0 |
SPM支持 SPM | ✗ |
由 evermeer 维护。
依赖项 | |
Alamofire | >= 0 |
EVReflection | >= 0 |
您可以通过以下方式将其作为 subspec 安装
use_frameworks!
pod "EVReflection/Alamofire"
除了这个 subspec 之外,还有以下 subspec:XML、AlamofireXML、Moya、MoyaRxSwift 和 MoyaReflectiveSwift
如果您有问题但不希望创建问题,那么我们可以这样(EVReflection 是 AlamofireJsonToObjects 的基础)
使用 AlamofireJsonToObjects,从 JSON 源获取并解析到对象非常简单。无需属性映射。使用反射将值放入相应的属性中。
AlamofireJsonToObjects 基于以下库
此库深受 AlamofireObjectMapper 的启发
目前,主分支适用于 Swift3。如果您想继续使用 Swift 2.2(或 2.3),则切换到 Swift2.2 分支。运行测试以查看 AlamofireJsonToObjects 的工作情况。
“AlamofireJsonToObjects” 通过依赖管理器 CocoaPods 提供。
您只需将以下两行添加到 Podfile 中,即可将 AlamofireJsonToObjects 添加到您的 workspace
use_frameworks!
pod "AlamofireJsonToObjects"
您还需要在 swift 文件的顶部添加一个导入,如下所示
import AlamofireJsonToObjects
class WeatherResponse: EVNetworkingObject {
var location: String?
var three_day_forecast: [Forecast] = [Forecast]()
}
class Forecast: EVNetworkingObject {
var day: String?
var temperature: NSNumber?
var conditions: String?
}
class AlamofireJsonToObjectsTests: XCTestCase {
func testResponseObject() {
let URL = "https://raw.githubusercontent.com/evermeer/AlamofireJsonToObjects/master/AlamofireJsonToObjectsTests/sample_json"
Alamofire.request(URL)
.responseObject { (response: DataResponse<WeatherResponse>) in
if let result = response.result.value {
// That was all... You now have a WeatherResponse object with data
}
}
waitForExpectationsWithTimeout(10, handler: { (error: NSError!) -> Void in
XCTAssertNil(error, "\(error)")
})
}
}
上面的代码将以下 json 传递到对象
{ "location": "Toronto, Canada",
"three_day_forecast": [
{ "conditions": "Partly cloudy",
"day" : "Monday",
"temperature": 20
}, {
"conditions": "Showers",
"day" : "Tuesday",
"temperature": 22
}, {
"conditions": "Sunny",
"day" : "Wednesday",
"temperature": 28
}
]
}
AlamofireJsonToObjects 基于 EVReflection,您可以像属性映射、转换器、验证器和键清理一样使用所有 EVReflection 功能。有关更多信息,请参阅 EVReflection。
当网络调用返回HTTP错误状态(300或更高)时,这将被添加到evReflectionStatuses中作为一个自定义错误。请参阅单元测试 testErrorResponse 作为示例。为了使这一功能工作,您确实需要将EVNetworkingObject作为您的基类,而不是EVObject。然后,您还需要注意,如果您重写initValidation或propertyMapping函数,您也必须调用该函数的super。
AlamofireJsonToObjects遵守MIT 3许可证。有关更多信息,请参阅LICENSE文件。
还可以查看我的其他开源iOS库