Я пытаюсь создать приложение для iPhone, которое должно потреблять веб-сервис, написанный в nodejs + MongoDB. Приложение выполнено в Swift, но теперь у меня проблема, я не смог правильно разобрать данные.Разбор json для геолокации Приложение iOS
В настоящее время у меня есть следующий код:
var endpoint = NSURL(string: self.url + "?latitud=" + self.latitude + "&longitud=" + self.longitude)
var data = NSData(contentsOfURL: endpoint!)
var error: NSError? = nil
if let json: NSDictionary = NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.MutableContainers, error: &error) as? NSDictionary {
for place in json {
var name = place["obj"]["name"]
var coords = place["obj"]["coords"]
var annotation = MKPointAnnotation()
annotation.title = name as? String
annotation.coordinate = coords as? CLLocationCoordinate2D
map.addAnnotation(annotation)
}
}
К сожалению, это не работает :(
Ответ от веб-сервиса похож на это:
[
{
"dis": 1.22,
"obj": {
"name": "Some name",
"coords": [
-97.1228,
17.4049
],
"phones": [
"555 555 55555",
"444 444 44444"
],
"address": {
"street": "Some Street",
"zip": "00000"
}
}
},
{
"dis": 2.03,
"obj": {
"name": "Othe name",
"coords": [
-97.0910
17.7099
],
"phones": [
"777 777 7777"
],
"address": {
"street": "Other street",
"zip": "11111"
}
}
}
]
Вот что я «Делает неправильно? Есть ли более элегантный (и особенно эффективный) способ сделать запросы API RESTful?
It. лучше использовать Array вместо NSArray? –
Здесь http://stackoverflow.com/a/24038680/2976077 - отличный ответ в отношении родных типов. Общепринятой практикой является использование родных типов Swift I.e. Массив в этом случае. – milo526