栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Cocoa-Touch-如何解析本地Json文件

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Cocoa-Touch-如何解析本地Json文件

JSON具有严格的键/值表示法,用于R4和响应的键/值对不正确。试试这个:

NSString *jsonString = @"{"quizz":[{"id":"1","Q1":"When Mickey was born","R1":"1920","R2":"1965","R3":"1923","R4":"1234","response":"1920"}]}";

如果您从文件中读取字符串,则不需要所有的斜杠。
文件将如下所示:

{“ quizz”:[{“ id”:“ 1”,“ Q1”:“米奇出生时”,“ R1”:“ 1920”,“ R2”:“ 1965”,“ R3”:“
1923”, “ R4”:“ 1234”,“响应”:“ 1920”},{“ id”:“ 1”,“ Q1”:“冷战开始时”,“ R1”:“ 1920”,“
R2”: “ 1965”,“ R3”:“ 1923”,“ R4”:“ 1234”,“响应”:“ 1920”}]}


我用以下代码进行了测试:

NSString *jsonString = @"{"quizz":[{"id":"1","Q1":"When Mickey was born","R1":"1920","R2":"1965","R3":"1923","R4":"1234","response":"1920"}, {"id":"1","Q1":"When start the cold war","R1":"1920","R2":"1965","R3":"1923","R4":"1234","reponse":"1920"}]}";NSLog(@"%@", jsonString);NSError *error =  nil;NSDictionary *json = [NSJSonSerialization JSONObjectWithdata:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error];NSArray *items = [json valueForKeyPath:@"quizz"];NSEnumerator *enumerator = [items objectEnumerator];NSDictionary* item;while (item = (NSDictionary*)[enumerator nextObject]) {    NSLog(@"clientId = %@",  [item objectForKey:@"id"]);    NSLog(@"clientName = %@",[item objectForKey:@"Q1"]);    NSLog(@"job = %@",       [item objectForKey:@"Q2"]);}

我的印象是,您复制了旧代码,因为您没有使用Apple的序列化和Enumerator而不是Fast
Enumeration。整个枚举内容可以写为

NSArray *items = [json valueForKeyPath:@"quizz"];for (NSDictionary *item in items) {    NSLog(@"clientId = %@",  [item objectForKey:@"id"]);    NSLog(@"clientName = %@",[item objectForKey:@"Q1"]);    NSLog(@"job = %@",       [item objectForKey:@"Q2"]);}

甚至是基于块的枚举的爱好者,如果需要快速安全的枚举,还需要另外一个索引。

NSArray *items = [json valueForKeyPath:@"quizz"];[items enumerateObjectsUsingBlock:^(NSDictionary *item , NSUInteger idx, BOOL *stop) {    NSLog(@"clientId = %@",  [item objectForKey:@"id"]);    NSLog(@"clientName = %@",[item objectForKey:@"Q1"]);    NSLog(@"job = %@",       [item objectForKey:@"Q2"]);}];


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/386122.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号