如何将 JSON 解析为 UITableview

Posted

技术标签:

【中文标题】如何将 JSON 解析为 UITableview【英文标题】:How to parse JSON into 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。

希望有人能帮帮我!

干杯,尼克拉斯

【问题讨论】:

【参考方案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 响应的好主意。

【讨论】:

以上是关于如何将 JSON 解析为 UITableview的主要内容,如果未能解决你的问题,请参考以下文章

如何将 JSON 解析为 UITableview

如何将 YouTube JSON 解析为 PHP? [复制]

如何将 JSON 字符串解析为 ListView?

如何使用 C# 将 JSON 对象解析为类

如何将 JSON 数组解析为字符串? [复制]

如何将字符串的缩进级别解析为 JSON 对象?