Tom*_*DRS 25 json objective-c ios
我现在已经搜索了大约两个小时,似乎没有人清楚地解释如何在Objective C中读取JSON文件.
假设我有一个名为JSON的文件colors.json,如下所示:
{
"colors": [{
"name": "green",
"pictures": [{
"pic": "pic1.png",
"name": "green1"
}, {
"pic": "pic2.png",
"name": "green2"
}]
}, {
"name": "yellow",
"pictures": [{
"pic": "pic3.png",
"name": "yellow1"
}]
}]
}
Run Code Online (Sandbox Code Playgroud)
我在哪里将该文件复制到我的XCode路径中?
如何以编程方式获取此文件?
我有这个文件后 - 如何读取name每个colors对象的值?
我怎么说"对于带有名称的颜色中的每张图片green,获取nameNSString中的值"?
我一直在尝试一些方法,但尚未得出结论.我只是理解JSON的概念错了吗?
Sim*_*mon 42
只需将您的JSON文件拖到Xcode中的项目导航器窗格中,它就会显示在与您的类文件相同的位置.
确保选中"如果需要,复制项目"复选框,并将其添加到正确的目标.
然后做这样的事情:
- (void)doSomethingWithTheJson
{
NSDictionary *dict = [self JSONFromFile];
NSArray *colours = [dict objectForKey:@"colors"];
for (NSDictionary *colour in colours) {
NSString *name = [colour objectForKey:@"name"];
NSLog(@"Colour name: %@", name);
if ([name isEqualToString:@"green"]) {
NSArray *pictures = [colour objectForKey:@"pictures"];
for (NSDictionary *picture in pictures) {
NSString *pictureName = [picture objectForKey:@"name"];
NSLog(@"Picture name: %@", pictureName);
}
}
}
}
- (NSDictionary *)JSONFromFile
{
NSString *path = [[NSBundle mainBundle] pathForResource:@"colors" ofType:@"json"];
NSData *data = [NSData dataWithContentsOfFile:path];
return [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15698 次 |
| 最近记录: |