2016-05-17 7 views
0

Ich habe die folgenden JSON zu analysieren. Aber wenn die Serialisierungsfunktion ausgeführt wird, wird ein Fehler ausgegebeniOS Swift geben Fehler: Müll am Ende beim Serialisieren von Daten aus JSON

Fehler Domain = NSCOAErrorDomain Code = 3840 "Müll am Ende".

{ 
    "b_categories": [{ 
     "id": "20", 
     "english": "GameCon", 
     "translitation": "06af06cc064506a906480646", 
     "urdu": "06af06cc064506a906480646", 
     "audio": "0863.ogg", 
     "file_type": "audio/ogg", 
     "file_size": "67.251", 
     "file_name": "1462621581.ogg", 
     "temp_name": "/tmp/phpisH1mM", 
     "listing_a_id": "9", 
     "status": "1" 
    }, { 
     "id": "19", 
     "english": "What is your name?", 
     "translitation": "06480679 06270632 06cc06480631 064606cc0645061f", 
     "urdu": "0622067e06a90627 064606270645 06a906cc0627 06be06d2061f", 
     "audio": "0863.ogg", 
     "file_type": "audio/ogg", 
     "file_size": "67.251", 
     "file_name": "1462028674.ogg", 
     "temp_name": "/tmp/phpgnGUTo", 
     "listing_a_id": "5", 
     "status": "1" 
    }, { 
     "id": "16", 
     "english": "Apple", 
     "translitation": "062706cc067e0644", 
     "urdu": "063306cc0628", 
     "audio": "sm1_cln.wav", 
     "file_type": "audio/wav", 
     "file_size": "108.645", 
     "file_name": "1458219047.wav", 
     "temp_name": "/tmp/phpzLbtur", 
     "listing_a_id": "6", 
     "status": "1" 
    }] 
} 

Dies ist mein Code:

do { 

    let json = try NSJSONSerialization.JSONObjectWithData(data2!, options: NSJSONReadingOptions()) as! [String: String] 

    if let blogs = json["b_categories"] as? [[String: AnyObject]] { 

     print("here 1") 
     let blog = blogs[0] 

     if let name = blog["english"] as? String { 

      print("here 2") 
      let newRecord = NSEntityDescription.insertNewObjectForEntityForName("B_categories", inManagedObjectContext: self.managedObjectContext) as! B_categories 
      newRecord.english = name 
      newRecord.file_name = blog["file_name"] as? String 
      newRecord.listing_a_id = Int((blog["listing_a_id"] as? String)!) 
     } 
    } 

} catch { 
    print("error serializing JSON: \(error)") 
} 

bitte

+0

Sie verpassen den Code, wo Sie zeigen, wie data2 mit dem Json gefüllt ist – Gruntcakes

Antwort

1

helfen, die nicht Ihre JSON ist, oder genauer gesagt, das ist nicht das, was Sie in data2 haben. Ich weiß nicht, was Sie tun haben in data2, aber ich habe versucht, dass JSON durch JSONObjectWithData läuft und es funktioniert. Ihr Daten-Blob enthält etwas anderes als das, was Sie denken, und Sie müssen herausfinden, was das ist. Aber Sie haben darüber kein Detail angegeben, also ist das eine separate Frage.

Sie haben mindestens ein Problem in dem Code, aber nicht ein, dass die Fehlermeldung verursachen würden Sie zitieren:

let json = try NSJSONSerialization.JSONObjectWithData(data2!, options: NSJSONReadingOptions()) as! [String: String] 

Dies wird scheitern, und Ihre Anwendung zum Absturz bringen. Ihr JSON ist nicht [String:String], so dass die Verwendung von as! hier, um das Downcasting zu erzwingen, einen Laufzeitfehler verursacht.

Verwandte Themen