无法使用 AlamoFire 和 SwiftyJSON 解析 JSON
Posted
技术标签:
【中文标题】无法使用 AlamoFire 和 SwiftyJSON 解析 JSON【英文标题】:Can´t parse JSON with AlamoFire and SwiftyJSON 【发布时间】:2016-08-09 15:53:24 【问题描述】:对于 ios,我一直坚持使用 AlamoFire
和 SwiftyJSON
解析 JSON。我有一个像这样的 JSON:
["id":23561,"name":"RFI - Persan رادیو صدای Ùرانسه Ùارسی","country":"FR","image":"url":null,"thumb":"url":null,"slug":"rfi-persan-رادیو-صدای-Ùرانسه-Ùارسی","website":"rfi","twitter":"","facebook":"","categories":["id":21,"title":"News","description":"","slug":"news","ancestry":"4"],"streams":["stream":"http://rfi-persan.scdn.arkena.com/rfienpersan.mp3","bitrate":0,"content_type":"audio/mpeg","status":1],"created_at":"2016-01-12T07:52:08+01:00","updated_at":"2016-08-02T01:52:50+02:00"]
这是我迄今为止尝试过的,但不起作用:
func loadSomeJSONData()
Alamofire.request(.GET, "http://example.com/json/")
.responseJSON (_, _, data, _) in
let json = JSON(data!)
if let Name = json["name"].string
println("name: \(firstName)") // Name should equal "RFI"
但由于某种原因,它没有从 json 对象中获取名称。
非常感谢!
【问题讨论】:
你在登录什么? 当您执行println
语句时,您在控制台中得到了什么?
【参考方案1】:
你的 json 是 Array
而不是 Dictionary
,所以这样访问 json
if let arr = json.arrayObject as? [[String:AnyObject]]
if let name = arr[0]["name"] as? String
println("name: \(name)") // Name should equal "RFI"
【讨论】:
一个提示也可以访问其他对象,但请确保image
、categories
和streams
也是数组。以上是关于无法使用 AlamoFire 和 SwiftyJSON 解析 JSON的主要内容,如果未能解决你的问题,请参考以下文章
无法使用 AlamoFire 和 SwiftyJSON 解析 JSON
无法使用“((Any))”类型的参数列表调用“JSON” - 使用 AlamoFire 和 SwiftyJSON