【问题标题】:How to append values to Model Class [duplicate]如何将值附加到模型类[重复]
【发布时间】:2019-07-08 10:48:15
【问题描述】:

我有一个模型类,我需要从 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 = "最高工资", assignment__file_up = "media/assignments/Calendar-master.zip"

【问题讨论】:

    标签: ios swift alamofire


    【解决方案1】:

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

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

     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 下划线。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-05-14
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      • 2010-09-24
      • 1970-01-01
      • 2016-02-24
      相关资源
      最近更新 更多