Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift:如何使用Alamofire或SwiftyJSON将JSON字符串转换为ObjectMapper?_Ios_Swift_Alamofire - Fatal编程技术网

Ios Swift:如何使用Alamofire或SwiftyJSON将JSON字符串转换为ObjectMapper?

Ios Swift:如何使用Alamofire或SwiftyJSON将JSON字符串转换为ObjectMapper?,ios,swift,alamofire,Ios,Swift,Alamofire,我目前正在使用for Swift将JSON对象从API映射到模型对象 但我的restful api返回api如下所示: { success: true, data: [{ "stats":{ "numberOfYes":0, "numberOfNo":2, "progress":{ "done":false,

我目前正在使用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$"
          }
       }]

}
在数据节点是数组中,我无法使用此代码查找映射

let json = JSON(responseObject!)

for tests in json["impressions"][0] {
  let test = Mapper<myTests>().map(tests)
  println(test?.impressionID)
}
let json=json(responseObject!)
对于json[“印象”][0]中的测试{
让test=Mapper().map(测试)
println(测试?.impressionID)
}
我该怎么修理? 谢谢

**已编辑** 我发现类似的解决方案@tristan\u 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"]
    }
}
let response: Response = Mapper<Response>().map(responseObject)!

for item in response.data! {
    let dataModel: Data = item
    println(dataModel.name)
}
类响应:可映射{
var成功:布尔?
变量数据:[数据]?
必需的初始化(umap:map){
地图(地图)
}
func映射(映射:映射){

success您可以使用以下类结构映射上面的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"]
    }
}
类响应:可映射{
var成功:布尔?
变量数据:[数据]?
必需的初始化(umap:map){
地图(地图)
}
func映射(映射:映射){

success@tristan_him,我们可以将“Response”和“Data”类放在两个不同的Response.swift和Data.swift文件中,还是我们需要将它们放在一个.swift文件中?@AshishPisey,这两种方式都可以。这取决于你和你想如何组织你的项目。对于当前版本和swift 3,这是相同的吗?对不起,我对这个图书馆来说是非常陌生的Y
let response = Mapper<Response>().map(responseObject)
if let id = response?.data?[0].uid {
    println(id)
}