使用 Swifty JSon 模型创建模型

萨拉斯·萨西
[
    {
        "_id": "1212323",
        "row": 1,
        "column": 1,
        "displayType": 0,
        "item": {
            "type": "category_",
            "data": {
                "_id": "595a1446cb91951900b0b4b0",
                "title": "something",
                "fullImage": "http://assets.something.mobi/curated/something (2).jpg",
                "halfImage": "http://assets.something.mobi/curated/something (1).jpg"
            }
        }
    },
    {
        "_id": "595a148ccb91951900b0b4b5",
        "row": 2,
        "column": 1,
        "displayType": 1,
        "item": {
            "type": "curatedlist",
            "data": {
                "_id": "595b34abcb9195190c0ae378",
                "active": "true",
                "title": "sample something list",
                "fullImage": "http://assets.something.mobi/curated/something (2).jpg",
                "halfImage": "http://assets.something.mobi/curated/something (2).jpg"
            }
        }
    }
]

SwiftyJSON 和 Alamofire 非常新,有人请帮我创建一个模型,我可以使用 almofire 获得 JSON 响应,但无法为此创建合适的 swifty json 模型

萨拉斯·萨西

我使用两个单独的模型类来完成此操作,一个用于直接映射所有值,另一个用于直接从它获取数组。

对于那些刚开始或坚持创建模型和映射值的人可以尝试这些,或者有人是专家可以建议更好的解决方案来改进实施

1.CategoryModel:NSObject

    import UIKit
    import SwiftyJSON

    class CategoryModel: NSObject {
        var resultArray : NSArray!
        var _id : String!
        var row : NSInteger!
        var column : NSInteger!
        var displayType : NSInteger!

        var type : String?

        var _id1 : String?
        var title : String?
        var fullImage : String?
        var halfImage : String?
        // var item


        required init(JsonDashBoard: JSON) {

            _id = JsonDashBoard["_id"].stringValue
            row = JsonDashBoard["row"].intValue
            column = JsonDashBoard["column"].intValue
            displayType = JsonDashBoard["displayType"].intValue

            //MARK:- Inside Item Dictionary
            type = JsonDashBoard["item"]["type"].stringValue
            //MARK:- Inside Item/dataDictionary
            _id1 = JsonDashBoard["item"]["data"]["_id"].stringValue
            title = JsonDashBoard["item"]["data"]["title"].stringValue
            fullImage = JsonDashBoard["item"]["data"]["fullWidthImage"].stringValue
            halfImage = JsonDashBoard["item"]["data"]["halfWidthImage"].stringValue

        }
    }

2.CategoryListModel:NSObject

  import UIKit

    class CategoryListModel: NSObject {
        var items : NSArray? = nil;
        required init(_items: NSMutableArray) {
            self.items = _items
        }
    }

并使用这些模型类,您可以使用以下代码片段映射值

manager.request(routeUrl, method: .get).responseJSON { (responseObject) -> Void in

        if responseObject.result.isSuccess {
            let resJson = JSON(responseObject.result.value!)
            let categoryList = NSMutableArray()
            for (_,subJson):(String, JSON) in resJson {

                let model = CategoryModel(JsonDashBoard: subJson)
                categoryList.add(model)
                //Do something you want
                print(subJson)

            }
            let categoryListModel = CategoryListModel(_items: categoryList)
            success(categoryListModel)


        }
        if responseObject.result.isFailure {
            let error : Error = responseObject.result.error!
            failure(error)
        }


    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章