最后,我们可以使用JSONModel轻松解决此问题。这是迄今为止最好的方法。JSONModel是一个库,该库通常基于Class序列化/反序列化您的对象。你甚至可以使用基于像财产上的非NSObject的
int,
short和
float。它还可以满足嵌套复杂的JSON。
#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 } ]}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)