我想从我在服务器响应中收到的 json 中迭代日期
Posted
技术标签:
【中文标题】我想从我在服务器响应中收到的 json 中迭代日期【英文标题】:i want to iterate the dates from the json i am receiving in the server response 【发布时间】:2018-04-19 08:04:52 【问题描述】:我收到来自服务器的响应,其中包含我想要迭代的显示日期,我该怎么做。问题是键“实例”具有对象的值,并且该对象包含我要存储的日期的键值对。请帮忙
这是 JSON 响应:
"data": [
"id": "XYFYyvu2bckt",
"theater_id": "clzEVgztkcWB",
"theater_audi_id": "N9iDgooiCW6N",
"movie_lang_id": "B9x98d4IEpCt",
"booking_start_date": null,
"instances":
"2018-04-18": [
"id": "vpcr2c9N12tL",
"show_time": "20:30:00"
],
"2018-04-19": [
"id": "X9kPcU7SLzrC",
"show_time": "20:30:00"
],
"2018-04-20": [
"id": "pFnFtXO5jKWp",
"show_time": "20:30:00"
],
"2018-04-21": [
"id": "hQuBFADUHeyS",
"show_time": "20:30:00"
],
"2018-04-22": [
"id": "vzXzOZvvKf9F",
"show_time": "20:30:00"
],
"2018-04-23": [
"id": "kAhzwyqoVGF4",
"show_time": "20:30:00"
],
"2018-04-24": [
"id": "wVXRjq6LrZJm",
"show_time": "20:30:00"
],
"2018-04-25": [
"id": "6hA1qglyP1Hf",
"show_time": "20:30:00"
],
"2018-04-26": [
"id": "NoLPN8RQNRXV",
"show_time": "20:30:00"
]
]
这是我尝试过的:
_ = URLSession.shared.dataTask(with: request) (Data, response, error) in
if Data != nil
do
let access = try JSONSerialization.jsonObject(with: Data!, options: []) as! [String:NSArray]
Completion(access)
for i in access["data"]!
let a = i
let b = try JSONSerialization.data(withJSONObject: a as Any, options: .prettyPrinted)
let d = try JSONSerialization.jsonObject(with: b, options: []) as! [String: Any]
let e = d["instances"]
for (key, timeObj) in d["instances"]
print(key)
catch let e
print(e)
.resume()
【问题讨论】:
你有什么尝试吗?因为 JSON,只是字典、数组、字符串和数字。基本的开发人员技能都没有。 我是 swift 新手,我已经编辑了我的问题以便更好地理解b
& d
的意义何在?不要在 Swift 3+ 中使用 NSArray
。学习调试:哪些行有效?哪个没有?然后带着这些信息回到这里。
...并且不要使用Data
(大写)作为变量名。它可能与 Swift 3+ Data
结构冲突。
【参考方案1】:
你可以试试
let access = try JSONSerialization.jsonObject(with: Data!, options: []) as! [String:Any]
if let data = access["data"] as? [[String:Any]] , let instances = data[0]["instances"] as? [String:Any]
print(instances)
【讨论】:
以上是关于我想从我在服务器响应中收到的 json 中迭代日期的主要内容,如果未能解决你的问题,请参考以下文章