2016-03-28 14 views
0

Mein Code istSchwerwiegender Fehler beim Versuch, JSON-Daten

let jsonData = try NSJSONSerialization.JSONObjectWithData(data!, options:NSJSONReadingOptions.MutableContainers) as! NSArray 
          let json = JSON(jsonData) 


for (_, subJSON): (String, JSON) in json[0]["events"] { 

let rel1 = InboxEvents(title: subJSON["title"].string!, guests: subJSON["guests"].string!, eventpic: subJSON["eventpic"].string!, eventID : NSInteger(subJSON["ID"].string!)!) 


self.arrayOfRels.append(rel1) 

    } 

Hier ist die InboxEvents Klasse

class InboxEvents { 

    var title = "" 
    var guests = "" 
    var eventpic = "" 
    var eventID = 6 


    init(title : String, guests: String, eventpic : String, eventID : NSInteger) { 

     self.title = title 
     self.guests = guests 
     self.eventpic = eventpic 
     self.eventID = eventID 

    } 

das ich habe, fatal error: unexpectedly found nil while unwrapping an Optional value in for-Schleife zu lesen.

json Ausgang ist hier

[ 
    { 
    "events" : [ 
     { 
     "ID" : "3", 
     "title" : "Test Event", 
     "guests" : 3, 
     "eventpic" : "/images\/event_pic\/event1.jpg" 
     }, 
     { 
     "ID" : "1", 
     "title" : "Test Event", 
     "guests" : 2, 
     "eventpic" : "/images\/event_pic\/event1.jpg" 
     } 
    ] 
    } 
] 

Was ist das Problem hier?

+0

was JSON ist in diesem Code JSON (jsonData), haben Sie eine Methode erstellt oder Sie verwenden und 3rd Party – HardikDG

+0

Bearbeitete die Frage –

Antwort

1

Ihr Problem ist in den subJSON["guests"] im json Sie als Beispiel Parameter, die den Gastes gezeigt hat, ist vom Typ Int, aber wenn Sie den Wert sind holen Sie den Wert als String
So sind holen, wenn Sie einfach dieser Wert drucken es wird Null angezeigt und wenn Sie versuchen, auspacken zu zwingen, es stürzt

so kann es zwei Option

  • Entweder Sie Ihre json Gast Eigenschaft als String ändern, wie in der InboxEvent Sie als String sind vorbei

  • Eine weitere Option ist, erhalten Sie den Wert in der interger/dobule entsprechend Ihrer Anforderung es um String konvertieren und die in der InboxEvent passieren oder InboxEvent Int statt String dauern

+0

hey ich vor kurzem festgestellt, dass, jetzt zu beheben –

Verwandte Themen