Ich versuche, JSON-Daten mit Swift aus Guidebox zu analysieren. Ein Beispiel für die Daten wie folgt aus:JSON-Daten in Swift von der Guidebox-API aus analysieren
{
"results": [
{
"id": 14673,
"title": "The Golden Girls",
"alternate_titles": [
"Golden Palace"
],
"container_show": 0,
"first_aired": "1985-09-14",
"imdb_id": "tt0088526",
"tvdb": 71292,
"themoviedb": 1678,
"freebase": "\/m\/01fszq",
"wikipedia_id": 217200,
"tvrage": {
"tvrage_id": 5820,
"link": "http:\/\/www.tvrage.com\/shows\/id-5820"
},
"artwork_208x117": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_small\/14673-9570342022-208x117-show-thumbnail.jpg",
"artwork_304x171": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_medium\/14673-3759246217-304x171-show-thumbnail.jpg",
"artwork_448x252": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_large\/14673-2249565586-448x252-show-thumbnail.jpg",
"artwork_608x342": "http:\/\/static-api.guidebox.com\/120214\/thumbnails_xlarge\/14673-6064109057-608x342-show-thumbnail.jpg"
}
],
"total_results": 1,
"development_api_key": "You are currently using a temporary development API key. This API key is for testing only. You have used 57 of 250 available calls. Please see the API docs (http:\/\/api.guidebox.com\/apidocs) for additional information or to generate a production API key."
}
Es scheint, dass für meinen Fall, der einfachste Weg, um die Daten zu verwenden, würde es [Zeichenfolge: Jeder] zu konvertieren, da alles, was ich wirklich brauchen „id "," title "und ein Artwork-Wert. Allerdings versagen all die (unzähligen) Methoden, die ich verwendet habe, weil "alternate_titles" als NSArray geparst wird und alles schwieriger macht. Bisher habe ich versucht, Variationen dieser Methode:
do {
let jsonResult = try JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Any]
let datafinal = jsonResult["results"] as! [String: Any]
//Fails around here usually, when the data is converted to [String: Any] or [Any:Any] because of the array.
let title = datafinal["title"]
} catch {
print("JSON Preocessing failed")
}
Ich habe auch die SwiftyJSON Bibliothek, um zu versuchen, die Daten zu leichter lesbar JSON zu konvertieren, aber die Methoden, um ein Wörterbuch zu ziehen aus ihm immer scheitern (Ich vermute aufgrund der Struktur auch). Jeder hat eine einfache Methode, um die JSON-Daten von der URL zu erhalten und einfach auf die Werte in "Ergebnisse" zuzugreifen? Jede Hilfe wird sehr geschätzt!
können Sie Ihre Bemühungen teilen? –
Versuchen Sie dies 'do { Lassen Sie jsonResult = JSONSerialization.jsonObject ausprobieren (mit: Daten !, Optionen: JSONSerialization.ReadingOptions.mutableContainers) as! [String: Beliebig] lass Datafinal = jsonResult ["results"] as! NSArary // Fails hier in der Regel, wenn die Daten wegen des Arrays in [String: Any] oder [Any: Any] konvertiert werden. let title = datafinal [0] .value (forKey: "title") print ("\ (Titel)") } catch { print ("JSON Bearbeitungen fehlgeschlagen") } ' –
eine Modellklasse erstellen und analysieren Es verwendet Objekt Mapper. –