【发布时间】:2012-03-21 05:23:43
【问题描述】:
到目前为止,我在 JSON 中发现 { } 中包含的所有内容都是对象(objC : NSDictionary),而 [ ] 中包含的所有内容都是数组(objC : NSArray)。
我已经阅读并重新阅读了这篇关于该主题的文章> How to parse JSON into Objective C - SBJSON
我有一个 .json 文件,其中的数据建模如下:
http://elbee101.com/dummySchedule.json
...现在是代码:
SBJSON *parser = [[SBJSON alloc] init];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://elbee101.com/dummySchedule.json"]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
NSString *json_string = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
NSDictionary *schedule = [parser objectWithString:json_string error:nil];
NSDictionary *day = [schedule objectForKey:@"day"];
NSArray *myList = [day objectForKey:@"name"];
NSLog(@"myList %@", myList);
NSArray *numLaps = [myList objectAtIndex:0];
NSLog(@"numlaps%@ ", numLaps);
我从上面的代码中得到了“myList (null)”和“numlaps (null)”?!@
问题:有人可以直接告诉我关于我的 json 数据的对象和数组的顺序吗?我想向下钻取树,以便我可以访问“日期名称”、“会话开始时间/结束时间/会话名称”、“numlaps”和“类”,但我似乎无法超越“日期”对象/数组(?)
【问题讨论】:
-
如果
SBJson解析器只是您关心的问题,那么请确认您的schedule和day包含其中的值(记录并检查),或者您可以使用 @ 执行相同操作987654327@ 具有改进的性能。您是从应用程序的主线程执行此操作吗... -
我有一个自定义类来解析任何 json 文件,所以你需要它
-
chiLLer,感谢您的回复! 'json_string' 包含所有数据,'schedule' 有 1 个键/值对,'day' 有 0 个键/值对。至于应用程序的主线程,不知道队友:) 我真的在寻找另一个线程的答案,即。顶级“日程安排是一个对象,日期是日程安排的一个属性(?),名称是一个数组(?)”等等......我真的很深入,并且对 obj-c 编程非常陌生!跨度>
标签: objective-c json parsing nsdictionary