2016-09-29 13 views
0

Ich verwende einen lokalen JSON in meinen schnellen Projekten. Ich muss die Daten im Array extrahieren. Ich bekomme einen unerwarteten Absturz.iOS Swift 3.0 lokaler JSON Parsing Absturz

Meine JSON ist:

{ 
cueca =  (
      { 
      agentName = "Sant"; 
      applicationName = "Get CDR Avaya"; 
      body = "Detail of the message."; 
      imageType = 1; 
      messageType = 1; 
      requestTime = "2016-01-01 00:00:04"; 
      sendTime = "2016-01-01 00:00:04"; 
      subject = "Mensagem 05"; 
      }, 
      { 
      agentName = "Sant2"; 
      applicationName = "Script Programming2"; 
      body = "Detail of the message."; 
      imageType = 1; 
      messageType = 1; 
      requestTime = "2016-01-01 00:00:03"; 
      sendTime = "2016-01-01 00:00:03"; 
      subject = "Mensagem 04"; 
      } 
); 
} 

MY-Code ist:

let file = Bundle.main.path(forResource: "ABC", ofType: "json")! as NSString 
    let url = URL(fileURLWithPath: file as String) 
    let data = try! Data(contentsOf: url) 
    let json = try! JSONSerialization.jsonObject(with: data) 

Mein Problem ist:

fatal error: 'try!' expression unexpectedly raised an error: Error Domain=NSCocoaErrorDomain Code=3840 "No string key for value in object around character 6." UserInfo={NSDebugDescription=No string key for value in object around character 6.}: file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-800.0.46.2/src/swift/stdlib/public/core/ErrorType.swift, line 178

Ich brauche inside "Cuaca" alles um das Objekt zu bekommen, dass ich kann das Array zur weiteren Verwendung verwenden.

+0

es bedeutet, ist kein gültiger JSON, überprüfen Sie einmal Ihre JSON-Datei –

Antwort

0

sein schließlich ein gültiges json Daten Problem, wenn Sie bekommen json Daten vom Server oder von anderswo nur versuchen, die Fehler zu korrigieren, während json Nicken zu schaffen, während in Ihren Daten, die Sie cueca Objekt mit Array von 2 Agentendatensätzen.

Valid JSON Beispiel:

{ 
    "cueca": [{ 
     "agentName": "Sant", 
     // data so on 
    }, { 
     "agentName": "Sant2", 
     // data so on 
    }] 
} 

Hier Wörterbuch cueca ein [] Array mit der Aufzeichnung.

1

Absturz ist, weil Dateipfad ist Null oder URL ist Null oder Daten ist Null. Bitte füge keinen Scheck hinzu. Versuchen Sie folgenden Code

if let file:String = Bundle.main.path(forResource: "ABC", ofType: "json") 
     { 
      if let url:URL = URL(fileURLWithPath: file) 
      { 
       if let data:NSData = NSData(contentsOf: url as URL) 
       { 
        do{ 
         _ = try JSONSerialization.jsonObject(with: data as Data, options: JSONSerialization.ReadingOptions()) 
        }catch{ 
         print(error) 
        } 

       } 

      } 

     }