MJExtension (conversão automática de JSON para modelo de dados)

MJExtension (conversão automática de JSON para modelo de dados)

Organizado em: http://www.jianshu.com/p/93c242452b9b.

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

 

 

1. Função de MJExtension

Dicionário -> Modelo 

Modelo -> Dicionário 

Matriz de dicionário -> Matriz de modelo 

Matriz de modelo -> Matriz de dicionário

2.pod import statement pod'MJExtension ' 

3. Conversão simples do modelo de dados 

Aluno * stu = [Aluno mj_objectWithKeyValues: dict];

O nome do atributo do objeto deve ser consistente com os dados em json

Se houver um modelo aninhado no modelo, use esta frase diretamente e use. Para acessar

por exemplo: status.retweetedStatus.user.name

4. Existem atributos de matriz no modelo, e a matriz contém outros modelos

Implementado dentro do modelo StatusResult

+ (NSDictionary *) objectClassInArray {

  Retorna @{

    @ "status": @ "Status",

    @ "anúncios": @ "Anúncio"

  } 

}

StatusResult * result = [StatusResult mj_objectWithKeyValues: dict];

Esta forma de escrita não precisa importar arquivos de status e de cabeçalho de anúncio, o nome da classe é escrito após os dois pontos

para (status * status em result.statuses) acesso transversal

5. Se o nome do atributo no modelo for diferente da chave do dicionário (e mapeamento multinível)

@interface Aluno: NSObject

@property (copy, nonatomic) NSString * ID;

@property (copy, nonatomic) NSString * desc;

@property (copiar, não atômico) NSString * nowName;

@property (copy, nonatomic) NSString * oldName;

@property (copiar, não atômico) NSString * nameChangedTime;

@property (strong, nonatomic) Bag * bag;

@fim

@interface Bag: NSObject

@property (copiar, não atômico) NSString * nome;

@property (atribuir, não atômico) preço duplo;

@fim

NSDictionary * dict = @ {

                           @ "id": @ "20",

                           @ "descrição": @ "孩子",

                           @ "name": @ {

                                   @ "newName": @ "lufy",

                                   @ "oldName": @ "kitty",

                                   @ "info": @ {

                                           @ "nameChangedTime": @ "2013-08"

                                           }

                                   },

                           @"de outros" : @{

                                   @"saco" : @{

                                           @ "nome": @ "小 书包",

                                           @ "preço": @ 100,7

                                           }

                                   }

                           };

Implemente o seguinte método no aluno

+ (NSDictionary *) mj_replacedKeyFromPropertyName {

    Retorna @{

             @"Eu fiz",

             @ "desc": @ "desciption",

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

             @ "nowName": @ "name.newName",

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

             @ "bag": @ "other.bag"

             };

}

Mapeamento multinível, a frente é o nome personalizado e a parte traseira é a relação de mapeamento no dicionário

6. Converta uma matriz de dicionário em uma matriz de modelo

NSArray * dictArray = @ [

                           @ {

                               @ "name": @ "Jack",

                               @ "icon": @ "lufy.png",

                               },

                           @ {

                               @ "name": @ "Rose",

                               @ "icon": @ "nami.png",

                               }

                           ];

NSArray * userArray = [Usuário mj_objectArrayWithKeyValuesArray: dictArray];

for (User * user in userArray) {

        NSLog (@ "nome =% @, ícone =% @", usuário.nome, usuário.icon);

}

7. Transforme um modelo em um dicionário

NSDictionary * statusDict = status.keyValues;

8. Converta uma matriz de modelo em uma matriz de dicionário

NSArray * userArray = @ [user1, user2];

NSArray * dictArray = [User keyValuesArrayWithObjectArray: userArray];

NSLog (@ "% @", dictArray);

Acho que você gosta

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