使用 SwiftyJSON 读取 JSON 响应的子节点
Posted
技术标签:
【中文标题】使用 SwiftyJSON 读取 JSON 响应的子节点【英文标题】:Reading child node of JSON response using SwiftyJSON 【发布时间】:2017-05-27 20:36:47 【问题描述】:我的 JSON 响应如下所示:
data:
type: "collections",
id: "dc165b3f-3600-486f-aa0b-d4719b18bb61",
attributes: ,
relationships:
shows: ,
slides:
links:
self: "https://stage-api.cde.com/networks/online/j/collections/dc165b3f-3600-486f-aa0b-d4719b18bb61/relationships/slides",
related: "https://stage-api.cde.com/networks/online/j/collections/dc165b3f-3600-486f-aa0b-d4719b18bb61/slides"
,
data: [
type: "slides",
id: "935d2313-4816-44a9-a65a-06a98af2d730"
,
type: "slides",
id: "daf02fda-b356-46df-b1d0-8c3212d826bf"
,
type: "slides",
id: "77bbb082-5976-450a-bb48-fda9d2a44e80"
]
,
videos: ,
collections:
,
links:
我需要获取data
数组下的slides
节点中存在的所有id
的值。我正在使用 SwiftyJSON 框架。
非常感谢任何帮助。如果不是 SwiftyJSON,请建议其他选项。
【问题讨论】:
【参考方案1】:试试这个:
import SwiftyJSON
let json: JSON = ...
let data = json["data"]["relationships"]["slides"]["data"]
guard let dataArray = data.array else
fatalError("data array NOT FOUND")
for child in dataArray
guard let id = child["id"].string else
fatalError("id NOT FOUND")
print("id: \(id)")
【讨论】:
是否可以共享代码如何使用 DispatchSemaphore(value: 0) 执行此操作,以便我可以在使用时获取函数外部的值:Alamofire.request(title, headers: headers) .validate().responseJSON 开关中的响应 response.result case .success(let value): let json = JSON(value) let data = json["data"]["relationships"]["slides"][" data"] 为 data.array 中的孩子! 让 id = child["id"].string!打印(“id:(id)”)。抱歉,我是新手。 @mizanrahman 请针对您当前的问题提出一个新问题并链接回该问题。这样你会得到更快/更好的结果;)以上是关于使用 SwiftyJSON 读取 JSON 响应的子节点的主要内容,如果未能解决你的问题,请参考以下文章