Parsen von JSON-Daten von alamofire in ein Array mit Dictionary
Ich versuche zu Parsen von JSON-Daten aus alamorefire wie folgt.
import UIKit
import Alamofire
import SwiftyJSON
class ViewController: UIViewController {
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);print(json)
let schedule = json[0]["schedule"]
}
}
}
Wenn ich drucken json, ich habe eine Daten-Struktur wie die folgende (bitte kurz und prägnant).
[
{
"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 das speichern des Zeitplans array mit einem Wörterbuch (departureTime, Ziel...) durch oder nicht durch SwiftyJSON?
Dank.
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)
}
}
}
}
}
}
}
InformationsquelleAutor El Tomato | 2016-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als erstes solltest du eine Klasse erstellen, wird Ihr Modell von
Schedule
wie dieseUnd in Ihrer view-controller, an den Ihr gehen zu müssen, ein array mit den
Schedule
Objekt und nach konnte Sie analysieren Ihre Json-Sie tun es so:Ist vielleicht nicht der effizientere Weg, es zu tun, aber es funktionierte für mich. Ich bin mit swift3 mit xcode 8.1.
Hoffe, es hilft !
Ich aktualisiert meine Antwort war
objSchedule
stattdir
sorryDie app stürzt ab mit der folgenden Meldung: nw_host_stats_add_src recv zu klein, erhielt 24, voraussichtlich 28 . Ich sah den gleichen Fehler ein paar Tage. Ich kann mich nicht erinnern, was es war, aber ich denke, es hat mich wechseln zu Swift 2.3 unter Xcode 7.
Welche version von xcode, das Sie verwenden ? Da die version 8.0 hat sich viel ärger. Vielleicht ist es der Grund sein könnte.
Ich bekomme den oben genannten Fehler unter Xcode 8.1. Ich habe kein Problem mit alamofire 3.5.1 unter Xcode 7.3.1.
InformationsquelleAutor Snoobie
Im Grunde, was Sie haben, ist ein array von Fahrplänen. Sie können die Karte es mit ObjectMapper. Installieren Sie die pod und erstellen Sie einfach ein neues Swift-Datei. und dies Schreibe
Nun können Sie es verwenden, wie
Ich hoffe, es hilft, Letme wissen, wenn Sie jede Schwierigkeit.
Sie haben im Grunde Ihren pass jsonObject (Ergebnis of service), um die Funktion
InformationsquelleAutor Umair Afzal
InformationsquelleAutor Chandan Taneja