Haben Probleme, die wahrscheinlich so gering ist, aber meine Suchen ergeben nichts. Ich habe ein json Modell wie folgt:parse verschachtelte JSON-Attribute in swift
// schnelle Syntax, um Ihnen eine Vorstellung von dem Modell
{user:
{"name": "",
"password": "",
"medium" : {
{"title":"",
{"description":""}}}
ich das obige Datenmodell aus einer GET-Anforderung an Benutzer immer und es gibt alle Info oben, aber wenn ich versuche, die "Medium" Informationen wie "Titel" zu analysieren & "Beschreibung" Ich habe kein Glück. Ich bekomme diese Antworten in Xcode, die sagen
"Wert des Objekts 'AnyObject' nicht ausgepackt, meinst du zu verwenden! Oder?"
und dann, wenn ich auf die runde rote Xcode-Nachricht klicke, um es zu beheben es setzt! S und? S überall, aber der Fehler bleibt. Hier ist meine Parse-Methode, die perfekt funktionierte, wenn ich nur vom "Medium" analysierte. Irgendeine Idee, was ich falsch mache?
ein Teil der Parse-Methode, wo ich den gleichen Fehler für jedes Attribut erhalten: alle Zeilen mit dem gleichen Fehler mit * gekennzeichneten mit etwas
// Parse JSON data
let jsonMedium = jsonResult?["user"] as! [AnyObject] //media where user is
for jsonMedia in jsonMedium {
let media = Media()
*media.title = jsonMedia["medium"]["title"] as! String
*media.description = jsonMedia["medium"]["description"] as! String
*media.category = jsonMedia["medium"]["category"] as! String
*media.image = jsonMedia["medium"]["image"] as! String
*if let IDer = jsonMedia["medium"]["id"] as? Int{
var stringIder = String(IDer)
media.identifierString = stringIder
}
noch kein Glück. Ich verstehe nicht, warum es mit regulärem JSON funktioniert, aber Xcode akzeptiert nichts, wenn ich versuche, verschachtelt zu werden. Ihre ganze Hilfe wurde geschätzt. In der Zwischenzeit ist hier die vollständige Methode, wenn es weiter
func parseJsonData(data: NSData) -> [Media] {
var medium = [Media]()
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data,
options: NSJSONReadingOptions.MutableContainers) as? NSDictionary
// Parse JSON data
let jsonMedium = jsonResult?["media"] as! [AnyObject]
for jsonMedia in jsonMedium {
let media = Media()
media.title = jsonMedia["medium"]["title"] as! String
media.description = jsonMedia["medium"]["description"] as! String
media.category = jsonMedia["medium"]["category"] as! String
media.image = jsonMedia["medium"]["image"] as! String
if let IDer = jsonMedia["medium"]["id"] as? Int{
var stringIder = String(IDer)
media.identifierString = stringIder
}
medium.append(media)
}
} catch {
print(error)
}
return medium
}
Sie erhalten eine Syntaxfehler bei xcode ?? –
Ja. Der Wert von Objekt eins, das ich für alle Zeilen beschrieben habe, die mit einem * –
aufgelistet sind, können Sie auf Skype kommen? –