SwiftyJSON 读取 JSON 数组问题
Posted
技术标签:
【中文标题】SwiftyJSON 读取 JSON 数组问题【英文标题】:SwiftyJSON Reading JSON Array issue 【发布时间】:2015-06-23 10:04:52 【问题描述】:我正在尝试使用我的代码读取如下所示的 json 数组数据,但我一直得到空结果,而我可以打印整个数据。请问我的问题在哪里?
我已阅读此主题,但无法获得结果。 Topic Link
"Cars":["Brand":"Alfa Romeo","Brand":"Audi","Brand":"BMW","Brand":"Citroen","Brand":"Dacia","Brand":"Fiat",..........
我的代码
func getData()
var url = "http://test.net/services/test.php"
var request = HTTPTask()
request.GET(url, parameters: nil, completionHandler:
(response:HTTPResponse) in
var jsonData = response.responseObject as! NSData
var json = JSON(data: jsonData)
println("All data \(json)")
dispatch_async(dispatch_get_main_queue(),
println(json["Cars"]["Brand"].stringValue)
)
)
【问题讨论】:
【参考方案1】:json["Cars"]
是一个数组,例如通过 SwiftyJSON 获取第一项:
println(json["Cars"][0]["Brand"].stringValue)
在 JSON 字符串中, 和
是字典的分隔符,而
[
和 ]
是数组的分隔符。
编辑:
根据您的评论,是的,您可以遍历数组:
if let cars = json["Cars"].array
for car in cars
println(car["Brand"])
【讨论】:
它现在正在工作。我想我必须将它放入 for 循环中才能获取所有值。【参考方案2】:这样你就可以使用SwiftyJSON获取你的json对象:
//Get your Data First
let json = JSON(data: data)
//Store your values from car key into Car object so we can get total count.
let Cars = json["Cars"].arrayValue
//Use For loop to get your car Brand
for i in 0..<Cars.count
println(json["Cars"][i]["Brand"].stringValue)
你的输出将是:
Alfa Romeo
Audi
BMW
Citroen
Dacia
Fiat
希望这是你需要的。
【讨论】:
以上是关于SwiftyJSON 读取 JSON 数组问题的主要内容,如果未能解决你的问题,请参考以下文章
使用 Alamofire + SwiftyJSON 获取 JSON 数组
通过解析 JSON-SwiftyJSON 创建一个 Class 对象数组
在 SwiftUI 上迭代 JSON 数组(使用 SwiftyJson 解析)
需要帮助使用 SwiftyJSON 使用 JSON 数据填充数组