2015-07-29 2 views
1

им с помощью SwiftyJSON, чтобы получить некоторые строки из этой JSON: http://api.randomuser.me но все я получаю нольSwiftyJSON не могу получить значение из JSON

let urlPath = "http://api.randomuser.me" 

func getJSON(urlToRequest: String) -> NSData { 
    return NSData(contentsOfURL: NSURL(string: urlToRequest)!)! 
} 

func getRandomUser() { 

    let encodedData = NSString(data: getJSON(urlPath), encoding: NSUTF8StringEncoding) 
    let json = JSON(rawValue: encodedData!)! 

    println(json["results"][0]["user"].string) 

} 

... я также попробовал:

let urlPath = "http://api.randomuser.me" 

    func getJSON(urlToRequest: String) -> NSData { 
     return NSData(contentsOfURL: NSURL(string: urlToRequest)!)! 
    } 

    func getRandomUser() { 

     let json = JSON(getJSON(urlPath)) 

     println(json["results"][0]["user"].string) 

    } 

я не знаю, почему он не печатает правильный результат

+0

[JSON "результаты"] [0] [ "пользователь"] является ДИКТ, поэтому доступ строка вар на ней будет возвращать ноль ... – Dean

ответ

0

Вы должны попробовать это:

var error: NSError? 
let data = getJSON(urlPath) 
let json = JSON(data: data, options: nil, error: &error) 
// 
println(json["results"][0]["user"]["name"]["first"].stringValue) 
+0

Спасибо! Это сработало для меня ... но я не понимаю, почему !? И я уверен, что я уже пробовал это уже ^^ – Richard

+0

Вы должны установить NSUTF8StringEncoding только для данных String, в этом случае у вас есть данные словаря. – ChikabuZ

Смежные вопросы