【问题标题】:How to parse JSON into UITableview如何将 JSON 解析为 UITableview
【发布时间】:2015-12-02 17:10:52
【问题描述】:

我必须在 Swift 2.0 中下载 JSON 文件并将其解析为 UITableView

我真的不想使用 SwiftyJSON 之类的第 3 方框架。

我得到了一个 swift 文件,它看起来有点像这样:

[
  {
   "id": "1",
   "title": "Test Shindig",
   "dateOfEvent": "2015-12-25 00:00:00",
   "totalGuests": 6
  }
]

所以我有一个字典数组。

我正在努力解决的 JSON 是这个:

{
  "guests": [
    {
     "id": "1",
     "firstName": "Burp",
     "lastName": "Derp",
    },
   ],
  "total": 6,
  "totalCheckedIn": 1
}

如果我没记错的话,那是一个包含一个数组和 2 个整数的字典

无论我尝试什么,我都无法从我的 API 调用中得到任何回报。

无论如何我也无法更改 JSON。

希望有人能帮帮我!

干杯,尼克拉斯

【问题讨论】:

    标签: json swift uitableview rest swift2


    【解决方案1】:

    如果您不想使用任何 3rd 方框架,您可以手动进行解析。最佳实践建议为 Guest 对象创建一个结构,并为整个响应(GuestList)创建一个结构。

    struct GuestList {
      var guests: [Guest]
      var total: Int
      var totalCheckedIn: Int
    
      init(data: [String: AnyObject]) {
        total = data["total"] as! Int
        totalCheckedIn = data["totalCheckedIn"] as! Int
        let list = data["guests"] as! [AnyObject]
        guests = [Guest]()
    
        for guest: [String: AnyObject] in list {
          guests.append(Guest(data: guest))
        }
      }
    }
    
    
    struct Guest {
      var id: Int
      var firstName: String
      var lastName: String
    
      init(data: [String: AnyObject]) {
        id = data["id"] as! Int
        firstName = data["firstName"] as! String
        lastName = data["lastName"] as! String
      }
    }
    

    这是一个有很多! 的快速实现,所以你应该小心。这段代码也没有经过测试,但它应该给你一个关于如何解析 JSON 响应的好主意。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-09
      • 1970-01-01
      • 2020-03-18
      • 1970-01-01
      • 2017-09-08
      • 2019-09-15
      • 1970-01-01
      相关资源
      最近更新 更多