Ich versuche, JSON-Daten von alamorefire wie folgt zu analysieren.Analysieren von JSON-Daten von Alamofire in Array mit dem Wörterbuch
Wenn ich json drucke, habe ich eine Datenstruktur wie folgt (kurz und knapp angegeben).
[
{
"schedule" : [
{"departureTime" : "05:09", "destination" : "Boston", "trainType" : "Express"},
{"departureTime" : "05:19", "destination" : "Portland", "trainType" : "Rapid"},
{"departureTime" : "05:29", "destination" : "Boston", "trainType" : "Express""}
],
"station" : "Grand Central",
"direction" : "North"
},
{
"schedule" : [
{"departureTime" : "05:11","destination" : "Washington, "trainType" : "Express""},
{"departureTime" : "05:23","destination" : "Baltimore, "trainType" : "Express""},
{"departureTime" : "05:35","destination" : "Richmond, "trainType" : "Local""}
],
"station" : "Grand Central",
"direction" : "South"
}
]
Nun, wie kann ich den Zeitplan-Array mit einem Wörterbuch (Busabfahrtszeit, Ziel ...) durch oder nicht durch SwiftyJSON retten?
Danke.
UPDATE
Das folgende ist meine eigene Lösung.
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
var scheduleArray = [Dictionary<String,String>]()
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request(.GET, "https://api.mynexttrainschedule.net/")
.responseJSON { response in
guard let object = response.result.value else {
print("Oh, no!!!")
return
}
let json = JSON(object)
if let jArray = json.array {
if let westHolidayArray = jArray[0]["schedule"].array {
for train in westHolidayArray {
if let time = train["departureTime"].string,
let dest = train["destination"].string,
let type = train["trainType"].string {
let dict = ["time":time, "dest":dest, "type": type]
self.scheduleArray.append(d)
}
}
}
}
}
}
}
Danke. Ich erhalte einen Fehler bei '.map' (über Druck). Es heißt 'Kann' map 'mit einer Argumentliste vom Typ (JSON) –
nicht aufrufen. Sie müssen Ihr jsonObject (Ergebnis des Dienstes) grundsätzlich an die Funktion –