Thu*_*ird 3 ios swift alamofire
我目前正在使用ObjectMapper for Swift 将 JSON 对象从 API 映射到模型对象
但我的restful api返回API看起来像这样:
{
success: true,
data:
[{
"stats":{
"numberOfYes":0,
"numberOfNo":2,
"progress":{
"done":false,
"absolute":"2/100",
"percent":2
}
},
"quickStats":null,
"uid":5,
"name":"Flora",
"imageArray":[
"http://s3.com/impr_5329beac79400000",
"http://s3.com/impr_5329beac79400001"
],
"metaData":{
"description":"Floral Midi Dress",
"price":"40$"
}
}]
}
Run Code Online (Sandbox Code Playgroud)
在数据节点是数组中,我无法使用此代码查找映射
let json = JSON(responseObject!)
for tests in json["impressions"][0] {
let test = Mapper<myTests>().map(tests)
println(test?.impressionID)
}
Run Code Online (Sandbox Code Playgroud)
我应该如何修复?谢谢
**编辑** 我找到了类似@tristan_him 的解决方案
对象模型映射结构
class Response: Mappable {
var success: Bool?
var data: [Data]?
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
success <- map["success"]
data <- map["data"]
}
}
class Data: Mappable {
var uid: Int?
var name: String?
// add other field which you want to map
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
uid <- map["uid"]
name <- map["name"]
}
}
Run Code Online (Sandbox Code Playgroud)
使用 Alamofire 响应进行映射
let response: Response = Mapper<Response>().map(responseObject)!
for item in response.data! {
let dataModel: Data = item
println(dataModel.name)
}
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用以下类结构映射上面的 JSON:
class Response: Mappable {
var success: Bool?
var data: [Data]?
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
success <- map["success"]
data <- map["data"]
}
}
class Data: Mappable {
var uid: Int?
var name: String?
// add other field which you want to map
required init?(_ map: Map) {
mapping(map)
}
func mapping(map: Map) {
uid <- map["uid"]
name <- map["name"]
}
}
Run Code Online (Sandbox Code Playgroud)
然后您可以按如下方式映射它:
let response = Mapper<Response>().map(responseObject)
if let id = response?.data?[0].uid {
println(id)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6793 次 |
| 最近记录: |