Saltar al contenido

Swift: crea un modelo de datos a partir de la respuesta JSON

Buscamos por internet y de esta manera brindarte la solución a tu duda, si continúas con alguna difcultad déjanos tu pregunta y te responderemos porque estamos para servirte.

Solución:

Recomiendo usar generación de código para generar modelos en Swift basados ​​en JSON. Con ese fin, he creado una herramienta en http://www.guideluxe.com/JsonToSwift para que modelar y analizar JSON sea lo más fácil posible.

Una vez que haya enviado un objeto JSON de muestra con un nombre de clase a la herramienta, generará una clase Swift correspondiente, así como las clases Swift subsidiarias necesarias, para representar la estructura implícita en el JSON de muestra. También se incluyen métodos de clase que se usan para llenar objetos de Swift, incluido uno que utiliza el método NSJSONSerialization.JSONObjectWithData. Se proporcionan las asignaciones necesarias de los objetos NSArray y NSDictionary.

Después de copiar el código generado en su proyecto como una clase de Swift, solo necesita proporcionar un objeto NSData que contenga JSON que coincida con la muestra proporcionada a la herramienta.

Aparte de Foundation, no hay dependencias.

Aquí se explica cómo crear un objeto NSData a partir de un archivo JSON para probarlo.

let fileUrl: NSURL = NSBundle.mainBundle().URLForResource("JsonFile", withExtension: "json")!
let jsonData: NSData = NSData(contentsOfURL: fileUrl)!

Sugeriría usar SwiftyJSONModel allí, su modelo se vería así:

import SwiftyJSONModel

class User: NSObject, JSONObjectInitializable 
    enum PropertyKey : String 
        case user_token, email
    

    var user_token:String?
    var email:String?

    required init(object: JSONObject) throws 
        user_token = object.value(for: .user_token)
        email = object.value(for: .email)
    

Esta biblioteca tiene 3 cosas buenas:

  1. No tienes que lanzar explícitamente a String como biblioteca inferirá el tipo
  2. Puede tener propiedades no opcionales y la biblioteca le dirá qué campo exacto estaba mal
  3. Todos keys al modelo están encapsulados en enum que le da autocompletado cuando escribe el keys y garantiza que no puede acceder keysque no están en enumeración

Estoy usando el generador de clase de modelo base de plantilla más fácil y personalizable de jsoncafe con diferentes framwroks como SwiftyJSON, Codable, Gloss, Simple Swift Class, incluso usted puede hacer su propia plantilla

jsoncafe.comingrese la descripción de la imagen aquí

Comentarios y puntuaciones

Más adelante puedes encontrar las críticas de otros usuarios, tú de igual forma tienes la libertad de insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *