swift4.0 Alamofire +SwiftyJSON+ObjectMapper解析模型

刚开始看的时候有点乱,但是不要慌,这里有你想要的答案,请给自己点耐心。

先看json数据

{
address = "8\U53f7";
conseventid = 59;
headphoto = "http://onh8hmni9.bkt.clouddn.com/1.jpg";
ordertime = "1970-1-1 9:00:01";
ordertimestatu = 0;
releasetime = "2017-4-7 13:32:57";
roomphoto =     (
{
img1 = "http://onh8hmni9.bkt.clouddn.com/img1.png";
},
{
img2 = "http://onh8hmni9.bkt.clouddn.com/img2.png";
},
{
img3 = "http://onh8hmni9.bkt.clouddn.com/img3.png";
}
);
username = "\U6211\U662f\U5361\U7c73\U4e9a1";
userneed = "\U5f00\U59cb\U4e86";
}

这个json中包含有嵌套的同模型

模型文件

import UIKit
import SwiftyJSON
import ObjectMapper

class XLJModel: NSObject,Mappable{

    var address : String!
    var conseventid : String!
    var headphoto : String!
    var ordertime : String!
    var ordertimestatu : String!
    var releasetime : String!
    var roomphoto : [DetailRoomphotoModel]!
    var username : String!
    var userneed : String!
    
    required init?(map: Map) {
        
    }
    
    func mapping(map: Map) {
        
        address <- map["address"]
        conseventid <- map["conseventid"]
        headphoto <- map["headphoto"]
        ordertime <- map["ordertime"]
        releasetime <- map["ordertime"]
        username <- map["username"]
        userneed <- map["userneed"]
        roomphoto <- map["roomphoto"]
    }
    

}

class DetailRoomphotoModel : Mappable{
    
    var img1 : String!
    var img2 : String!
    var img3 : String!

    required init?(map: Map) {
        
    }
    
    func mapping(map: Map) {
        img1 <- map["img1"]
        img2 <- map["img2"]
        img3 <- map["img3"]
    }

    
}

如何使用的呢?

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
        do {
            tool.loadData(callBack: { (respone) in
                print("获取到的数据:\(respone)")
            })
            
            XLJNetworkTools.request.forGet(url: "http://onh8hmni9.bkt.clouddn.com/testGrap.json").success({ (respone) in

              //最外层的大模型
                let model = Mapper<XLJModel>().map(JSON: respone as! [String : Any])
                for item in (model?.roomphoto)!{
              //嵌套的模型
                    let smod = Mapper<DetailRoomphotoModel>().map(JSONObject: item)
                }
            }).failure({ (error) in
                print("error:\(String(describing: error))")
            })
            
        }
    }

封装的Alamofire在demo中请下载详看,有借鉴别人的。

Demo下载地址

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,714评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,261评论 4 61
  • 当我第一次看到这本书,竟然因为它的名字很普通而在心里觉得并不是什么值得花时间去读的书,加之之前我孤陋寡闻从未听说过...
    窀穸宴阅读 518评论 1 1
  • 看来今夜是无眠了。她躺在床上翻来覆去地想。想什么呢?想刚才在他的肩膀上一次又一次地痛哭?唉,都怪这看不懂捉摸不透的...
    韩小梅阅读 238评论 0 3
  • 毕业后才知道,原来最便宜的还是食堂的饭菜; 毕业后才知道,原来做学生是最轻松、最不需要处处做事还要看老板脸色的工作...
    白子初的小鸡腿阅读 230评论 0 1