MJExtension (conversión automática de JSON a modelo de datos)

MJExtension (conversión automática de JSON a modelo de datos)

Obtenido de: http://www.jianshu.com/p/93c242452b9b.

Reimpreso de  https://www.cnblogs.com/huoran1120/p/5470480.html

 

 

1. Función de MJExtension

Diccionario -> Modelo 

Modelo -> Diccionario 

Matriz de diccionario -> Matriz de modelo 

Matriz de modelo -> Matriz de diccionario

2.pod import declaración pod'MJExtension ' 

3. Conversión de modelo de datos simple 

Estudiante * stu = [Estudiante mj_objectWithKeyValues: dict];

El nombre de atributo del objeto debe ser consistente con los datos en json

Si hay un modelo anidado en el modelo, use esta oración directamente y úsela. Para acceder

por ejemplo: status.retweetedStatus.user.name

4. Hay atributos de matriz en el modelo y la matriz contiene otros modelos.

Implementado dentro del modelo StatusResult

+ (NSDictionary *) objectClassInArray {

  regreso @{

    @ "estados": @ "Estado",

    @ "anuncios": @ "Anuncio"

  } 

}

StatusResult * resultado = [StatusResult mj_objectWithKeyValues: dict];

Esta forma de escritura no necesita importar archivos de encabezado de anuncio y estado, el nombre de la clase se escribe después de los dos puntos

para (Estado * estado en result.statuses) acceso transversal

5. Si el nombre del atributo en el modelo es diferente de la clave del diccionario (también hay un mapeo multinivel)

@interface Estudiante: NSObject

@property (copia, no atómico) NSString * ID;

@property (copia, no atómico) NSString * desc;

@property (copia, no atómico) NSString * nowName;

@property (copia, no atómico) NSString * oldName;

@property (copia, no atómico) NSString * nameChangedTime;

@property (fuerte, no atómico) Bolsa * bolsa;

@fin

@interface Bolsa: NSObject

@property (copia, no atómico) NSString * nombre;

@property (asignar, no atómico) precio doble;

@fin

NSDictionary * dict = @ {

                           @ "id": @ "20",

                           @ "descripción": @ "孩子",

                           @"nombre" : @{

                                   @ "nuevoNombre": @ "lufy",

                                   @ "oldName": @ "gatito",

                                   @ "información": @ {

                                           @ "nameChangedTime": @ "2013-08"

                                           }

                                   },

                           @ "otro": @ {

                                   @"bolso" : @{

                                           @ "nombre": @ "小 书包",

                                           @ "precio": @ 100,7

                                           }

                                   }

                           };

Implementar el siguiente método en Student

+ (NSDictionary *) mj_replacedKeyFromPropertyName {

    regreso @{

             @"Yo hice",

             @ "desc": @ "descripción",

             @ "oldName": @ "name.oldName",

             @ "nowName": @ "nombre.nuevoNombre",

             @ "nameChangedTime": @ "name.info.nameChangedTime",

             @ "bolsa": @ "otra.bolsa"

             };

}

Mapeo de varios niveles, el anverso es el nombre personalizado y el reverso es la relación de mapeo en el diccionario

6. Convierta una matriz de diccionario en una matriz de modelo

NSArray * dictArray = @ [

                           @ {

                               @ "nombre": @ "Jack",

                               @ "icono": @ "lufy.png",

                               },

                           @ {

                               @ "nombre": @ "Rosa",

                               @ "icono": @ "nami.png",

                               }

                           ];

NSArray * userArray = [Usuario mj_objectArrayWithKeyValuesArray: dictArray];

para (Usuario * usuario en userArray) {

        NSLog (@ "nombre =% @, icono =% @", nombre.usuario, icono.usuario);

}

7. Convierte un modelo en un diccionario

NSDictionary * statusDict = status.keyValues;

8. Convierta una matriz de modelos en una matriz de diccionario.

NSArray * userArray = @ [usuario1, usuario2];

NSArray * dictArray = [User keyValuesArrayWithObjectArray: userArray];

NSLog (@ "% @", dictArray);

Supongo que te gusta

Origin blog.csdn.net/ximiaoweilai/article/details/103841468
Recomendado
Clasificación