ios - 如何将值附加到模型类

标签 ios swift alamofire

<分区>

我有一个模型类,我需要在其中附加来自 JSON 的值,我正在使用 Alamofire

我试过下面的方法,但是没有正确添加值。

这是模型类

class ImageMJ {
var assignment__assignment_name:String?
var assignment__file_up:String?

init(assignment__assignment_name: String?, assignment__file_up: String?) {
    self.assignment__assignment_name = assignment__assignment_name
    self.assignment__file_up = assignment__file_up
  }
}

还有我用过的乐趣

var imageDetailsArrayMJ = [ImageMJ]()

Alamofire.request(urls, method: .get, parameters: nil, encoding: JSONEncoding.default, headers: headers).responseJSON { (response) in
        if((response.result.value) != nil) {
             let jsonVar = JSON(response.result.value!)
//                print(jsonVar)



            if let items = jsonVar["assisgnments"].array  {
                for item in items {

                    if let ids = item["assignment__assignment_name"].string {
                        print("IDS ==   \(ids)")
                        self.imageDetailsArrayMJ.append(ImageMJ(assignment__assignment_name: ids as! String, assignment__file_up: nil))

                    }

                    if let ifd = item["assignment__file_up"].string {
                        self.imageDetailsArrayMJ.append(ImageMJ(assignment__assignment_name: nil, assignment__file_up: ifd as! String))
                    }
                }


            }

我的JSON是

{
"assisgnments": [
    {
        "assignment__file_up": "media/"
        "assignment__assignment_name": "MAX PAYNE",
    },
    {
        "assignment__file_up": "media/assignments/Calendar-master.zip",
        "assignment__assignment_name": "Doctor",
    },
    {
        "assignment__assignment_desc": "EA SPORTS FIFA 20",
        "assignment__file_up": "media/assignments/Screen_Shot_2019-07-08_at_10.38.49_AM.png",
    }
]}

我需要这样 assignment__assignment_name = "MAX PAYNE", assignment__file_up = "media/assignments/Calendar-master.zip"

最佳答案

不必为每个字典值创建一个新项,而是必须在每次迭代中创建一个项。

由于属性是可选的,所以您不需要检查(也不需要类型转换)

 if let items = jsonVar["assisgnments"].array  {
    for item in items {

        let ids = item["assignment__assignment_name"].string 
        let ifd = item["assignment__file_up"].string
        self.imageDetailsArrayMJ.append(ImageMJ(assignment__assignment_name: ids, assignment__file_up: ifd))
    }
 }

我们鼓励您放弃 SwiftyJSON,转而使用 Codable 并摆脱那些丑陋的 objective-c-ish 下划线。

关于ios - 如何将值附加到模型类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56933294/

相关文章:

ios - 推送通知应用程序背景 iOS 9 swift

swift - Swift 中的 AURenderCallbackStruct

alamofire - 使用 Content-MD5 之类的东西扩展 Alamofire

swift - 在 alamofire 中发送数组的数组

ios - 在 UIScrollView 的 Paging 上重用 3 个 View

ios - 当我减少我的应用程序的销售地区数量时,谁会收到更新?

swift - 检查重复项(随机数)

ios - 需要 SwiftyJSON 模型和带有嵌套 for 循环的 api 调用,用于带有字典数组的数组

iOS 应用程序不返回到同一个 View Controller

ios - 旋转 SKNode 指向触摸接触点