recorrer jsonserialization array json swift3

jsonserialization - recorrer json swift



Lea el archivo JSON con Swift 3 (1)

Tengo un archivo JSON llamado points.json y una función de lectura como:

private func readJson() { let file = Bundle.main.path(forResource: "points", ofType: "json") let data = try? Data(contentsOf: URL(fileURLWithPath: file!)) let jsonData = try? JSONSerialization.jsonObject(with: data!, options: []) as! [String:Any] print(jsonData) }

No funciona, ¿alguna ayuda?


Tu problema aquí es que obligas a desenvolver los valores y en caso de error no puedes saber de dónde viene.

En su lugar, debe manejar los errores y desenvolver sus opciones de manera segura.

Y como @vadian señala acertadamente en su comentario, debe usar Bundle.main.url .

private func readJson() { do { if let file = Bundle.main.url(forResource: "points", withExtension: "json") { let data = try Data(contentsOf: file) let json = try JSONSerialization.jsonObject(with: data, options: []) if let object = json as? [String: Any] { // json is a dictionary print(object) } else if let object = json as? [Any] { // json is an array print(object) } else { print("JSON is invalid") } } else { print("no file") } } catch { print(error.localizedDescription) } }

¡Cuando se codifica en Swift, por lo general ! es un olor a código ¡Por supuesto que hay excepciones (IBOutlets y otros) pero trate de no usar la fuerza desenvolviendo ! usted mismo y siempre desenvuelva de forma segura en su lugar.