#json #swift #swift3 #alamofire
#json #swift #swift3 #alamofire
Вопрос:
Я пытаюсь проанализировать JSON, но это не работает. Я хочу получить id
из JSON по URL, но он показывает мне нулевое значение.
var names = [String]()
var SearchURL = "http://ios.khothe.vn/web/gamecards/authenticate/user/dungphiau/pass/829d81d46bad96825dc52a6e1675aab0"
typealias jsonStandard = [String : AnyObject]
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
callAlamo(url: SearchURL)
}
func callAlamo(url : String) {
Alamofire.request(url).responseJSON(completionHandler:
{
responds in
self.parseData(JsonData: responds.data!)
})
}
func parseData(JsonData : Data) {
do{
var readableJson = try JSONSerialization.jsonObject(with: JsonData, options: .mutableContainers) as! jsonStandard
let tracks = readableJson["id"] as? jsonStandard
print(tracks)
} catch{
print(error)
}
}
Комментарии:
1. Какое именно значение
nil
?2. я хочу разобрать значение «id» в URL и распечатать его
3. Опять же, какая именно строка показывает вам значение «null»?
4. пусть tracks = readableJson[«id»] как? Стандарт JSON
5. Все еще неясно. Является
readableJson
нулевым или равноtracks
nil? Используйте отладчик. Посмотрите, каково каждое значение. Подтвердите, чтоreadableJson
на самом деле содержит ключ"id"
.
Ответ №1:
Значение для ключа id
String
не [String:AnyObject]
aka jsonStandard
let tracks = readableJson["id"] as? String
Учтите, что в Swift 3 тип словаря JSON равен [String:Any]
typealias jsonStandard = [String : Any]