swift - 对象映射失败但有响应
问题描述
我正在映射来自这个http://www.reddit.com/reddits.json的 json 响应,但我只需要来自该 json 的很少,所以我像下面的代码一样映射它,我也在用户内部执行请求
class Users: Mappable {
var kind: String?
var data: Data?
required init?(map: Map){
}
func mapping(map: Map) {
kind <- map["kind"]
data <- map["data"]
}
}
class Children: Mappable {
var kind: String?
var data: Data?
required init?(map: Map){
}
func mapping(map: Map) {
kind <- map["kind"]
data <- map["data"]
}
}
class Data: Mappable {
var title: String?
var displayNamePrefixed: String?
required init?(map: Map){
}
func mapping(map: Map) {
title <- map["title"]
displayNamePrefixed <- map["display_name_prefixed"]
}
}
extension Users {
static func getUsers() -> Single<[Users]> {
let path = API.Path.users.details
let params: [String: Any] = [
"utcOffset": TimeZone.current.utcOffset
]
return API.requestMany(path: path, method: .get, parameters: params)
}
}
这是我的请求代码
static func requestMany<T>(path: String, method: HTTPMethod, parameters: [String: Any] = [:]) -> Single<[T]> where T: BaseMappable {
return NetworkManager.shared.request(path: path, method: method, parameters: parameters)
.flatMap { (response) -> Observable<[T]> in
print("HOST:\(baseURL)")
print("PATH:\(path)")
print("PARAMETERS:\(parameters)")
print("RESPONSE:\(response?.description ?? "")")
if let error = response as? NSError {
return Observable<[T]>.error(error)
}
guard let json = response as? [[String: Any]] else {
return Observable<[T]>.error(NSError(domain: path,
code: -1,
userInfo: [NSLocalizedDescriptionKey: "Object mapping failed"]))
}
let array = Mapper<T>().mapArray(JSONArray: json)
return Observable<[T]>.just(array)
}
.observeOn(MainScheduler.instance)
.asSingle()
}
它说对象映射失败,即使我可以在控制台中看到响应
Object mapping failed
Unhandled error happened: Error Domain=reddits.json Code=-1 "Object mapping failed" UserInfo={NSLocalizedDescription=Object mapping failed}