json swift2

Swift 2 Parsing JSON-No se puede subindicar un valor de tipo ''AnyObject''



swift2 (2)

Puedes hacerlo

let title : String if let titleVal = item["Title"] as? String { title = titleVal print(title) }

Esto se ocupará de verificar si el valor de la propiedad del Title es nulo o no. Si no es nulo, leerá el valor y se establecerá en la variable titleVal .

Si está seguro de que nunca tendrá un valor nulo, puede usar este código

let title = item["Title"] as! String

He intentado seguir ejemplos para analizar un archivo JSON (por ejemplo, una respuesta a otra pregunta publicada aquí: https://stackoverflow.com/a/27206145/4040201 ) pero no puedo hacer que funcione. Ahora recibo el error "No se puede subindicar un valor de tipo ''AnyObject''" en las líneas "let ... = item [" ... "] as? String".

func connectionDidFinishLoading(connection: NSURLConnection) { do { let jsonResult = try NSJSONSerialization.JSONObjectWithData(self.bytes!, options: NSJSONReadingOptions.MutableContainers) as! Dictionary<String, AnyObject> if let searchResults = jsonResult["Search"] as? [AnyObject] { for item in searchResults { let title = item["Title"] as? String //Error Here let type = item["Type"] as? String //Error Here let year = item["Year"] as? String //Error Here print("Title: /(title) Type: /(type) Year: /(year)") } } } catch let error as NSError { NSLog("JSON Error: /(error)") } }

Ejemplo de JSON:

{ "Search": [ { "Title":"Example 1", "Year":"2001", "Type":"Type1" }, { "Title":"Example 2", "Year":"2006", "Type":"Type1" }, { "Title":"Example 3", "Year":"1955", "Type":"Type1" } ]}


prueba esto

func connectionDidFinishLoading(connection: NSURLConnection) { do { let jsonResult = try NSJSONSerialization.JSONObjectWithData(self.bytes!, options: NSJSONReadingOptions.MutableContainers) as! Dictionary<String, AnyObject> if let searchResults = jsonResult["Search"] as? [[String: AnyObject]] { for item in searchResults { let title = item["Title"] let type = item["Type"] let year = item["Year"] print("Title: /(title) Type: /(type) Year: /(year)") } } } catch let error as NSError { NSLog("JSON Error: /(error)") } }