iOS:通常从NSObject类序列化反序列化复杂的JSON

iOS:通常从NSObject类序列化反序列化复杂的JSON,第1张

iOS:通常从NSObject类序列化/反序列化复杂的JSON

最后,我们可以使用JSONModel轻松解决此问题。这是迄今为止最好的方法。JSONModel是一个库,该库通常基于Class序列化/反序列化您的对象。你甚至可以使用基于像财产上的非NSObject的

int
short
float
。它还可以满足嵌套复杂的JSON。

1)反序列化示例 。通过参考上面的示例,在头文件中:

#import "JSONModel.h"@interface Person : JSonModel @property (nonatomic, strong) NSString *firstName;@property (nonatomic, strong) NSString *lastName;@property (nonatomic, strong) NSNumber *age;@end@protocol Person;@interface Department : JSONModel@property (nonatomic, strong) NSMutableArray<Person> *accounting;@property (nonatomic, strong) NSMutableArray<Person> *sales;@end

在实现文件中:

#import "JSONModelLib.h"#import "myJSONClass.h"NSString *responseJSON = ;Department *department = [[Department alloc] initWithString:responseJSON error:&err];if (!err){    for (Person *person in department.accounting) {        NSLog(@"%@", person.firstName);        NSLog(@"%@", person.lastName);        NSLog(@"%@", person.age);  }    for (Person *person in department.sales) {        NSLog(@"%@", person.firstName);        NSLog(@"%@", person.lastName);        NSLog(@"%@", person.age);  }}

2)序列化示例 。在实现文件中:

#import "JSONModelLib.h"#import "myJSONClass.h"Department *department = [[Department alloc] init];Person *personAcc1 = [[Person alloc] init];personAcc1.firstName = @"Uee";personAcc1.lastName = @"Bae";personAcc1.age = [NSNumber numberWithInt:22];[department.accounting addOject:personAcc1];Person *personSales1 = [[Person alloc] init];personSales1.firstName = @"Sara";personSales1.lastName = @"Jung";personSales1.age = [NSNumber numberWithInt:20];[department.sales addOject:personSales1];NSLog(@"%@", [department toJSONString]);

这是来自Serialize示例的NSLog结果:

{ "accounting" : [{ "firstName" : "Uee","lastName"  : "Bae",         "age"       : 22 }      ],        "sales"      : [{ "firstName" : "Sara",          "lastName"  : "Jung",         "age"       : 20 }       ]}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4909065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存