无法使用 AlamoFire 和 SwiftyJSON 解析 JSON
Can´t parse JSON with AlamoFire and SwiftyJSON
我一直坚持用 AlamoFire
和 SwiftyJSON
解析 JSON 来解析 iOS。我有一个 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 对象中获取名称。
非常感谢!
您的 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"
}
}
我一直坚持用 AlamoFire
和 SwiftyJSON
解析 JSON 来解析 iOS。我有一个 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 对象中获取名称。
非常感谢!
您的 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"
}
}