я получил NSData от онлайн API следующим кодом:Синтаксический NSData в Json неудачу в моем быстром приложении
let task = NSURLSession.sharedSession().dataTaskWithRequest(request) {
data, response, error in
if error != nil {
print("\(error)")
return
}
let res = NSString(data: data!, encoding: NSUTF8StringEncoding)
print("\(res)")
};
task.resume()
Данные выглядит следующим образом (NSString нормально):
{
"word": "detrimental",
"results": [
{
"definition": "(sometimes followed by `to') causing harm or injury",
"partOfSpeech": "adjective",
"synonyms": [
"damaging",
"prejudicial",
"prejudicious"
],
"similarTo": [
"harmful"
],
"derivation": [
"detriment"
]
}
],
"syllables": {
"count": 4,
"list": [
"det",
"ri",
"men",
"tal"
]
},
"pronunciation": {
"all": ",dɛtrə'mɛntəl"
},
"frequency": 2.77
}
Теперь я пытаюсь разобрать данные в json. Я пробовал несколько способов, но все провалилось. Как это:
func getJSON(data:NSData) -> [[String:AnyObject]]{
var json = [[String:AnyObject]]()
do {
json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as! [[String:AnyObject]]
} catch {}
return json;
}
и это один также не удалось: (Причина: Не удалось бросить значение типа '__NSCFDictionary' (0xd755c0) к 'NSArray' (0xd752f0).)
func hiJson(data:NSData) -> NSArray {
var json: NSArray!
do {
json = try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as! NSArray
} catch {
print(error)
}
return json
}
Может ли кто-нибудь помочь?
Ваши данные словаря, а не массив. – Moritz
Вы правы, спасибо за помощь. Кстати, знаете ли вы, как получить ключ определения в результатах? Я попытался res ["results"] ["definition"], но это не сработало –