你的模型看起来足够好。但为什么只NSStrings
针对项目。根据您的描述项目模型类应如下所示:
@interface Item: NSObject{
NSString *title;
NSString *description;
NSURL *itemURL;
UIImage *image;
}
您可以NSJSONSerialization
用于解析 json。例如:
如果你有一个像下面这样的 json 字符串,你可以像下面这样解析它:
NSString *jsonString= @"{ \"category1\": [ { \"iTitle\" : \"item1\", \"iDescription\":\"desc1\"},{ \"iTitle\" : \"item2\", \"iDescription\":\"desc2\"}]}";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonObj = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
如果要解析并将其放入类中,可以执行以下操作:
for (NSString *category in jsonObj) {
Category *categoryObj = [[Category alloc] init];
categoryObj.title = category;
NSArray *itemArray = [jsonObj valueForKey:category];
for (NSDictionary *item in itemArray) {
Item *itemObj = [[Item alloc] init];
itemObj.title = [item valueForKey:@"title"];
itemObj.description= [item valueForKey:@"description"];
[categoryObj.items addObject:itemObj];
}
}
遍历字典(或访问字符串中的 'category1'
@"{ \"tab1\": [{ \"category1\": [ { \"iTitle\" : \"item1\", \"iDescription\":\"desc1\"},{ \"iTitle\" : \"item2\", \"iDescription\":\"desc2\"}]}}"
您可以使用 for in 循环。
NSDictionary *categoryDict = [[jsonObj valueForKey:"tab1"] objectAtIndex:0];
for (id key in categoryDict){
NSLog(@"Key : %@",key);
NSLog(@"Value: %@",[categorDict valueForKey:key];
}