将 Json 表解析为 NSMutableArray [重复]
Posted
技术标签:
【中文标题】将 Json 表解析为 NSMutableArray [重复]【英文标题】:Parse a Json Table to a NSMutableArray [duplicate] 【发布时间】:2014-01-19 15:00:50 【问题描述】:目前我直接通过本机 Objective-C 代码填充我的数组:
Datas *pan1 = [[Datas alloc] initWithTitle:@"My array 1" title:@"Shakespeare's Book" location:@"London"];
Datas *pan2 = [[Datas alloc] initWithTitle:@"My array 2" title:@"Moliere's Book" location:@"London"];
NSMutableArray *datasListe = [NSMutableArray arrayWithObjects:pan1, pan2, nil];
但我想用这个 Json 列表填充这个 NSMutableArray :
"myIndex" : [
"name":"My array 1",
"title": "Shakespeare's Book",
"location": "London"
,
"name":"My Array 2",
"title": "Moliere's Book",
"location": "Paris"
]
有人有想法吗?非常感谢!
【问题讨论】:
到目前为止你尝试过什么? 您拥有的是一个“对象”(字典),其中包含一个名为“myIndex”的条目并包含一个由多个“对象”组成的数组。请参阅 json.org 以了解语法。使用 NSJSONSerialization 转换为 Objective-C 对象。 目前我可以显示整个 Json 数据。例如,我知道如何从“标题”中获取数据。但我无法获取所有“标题”数据并将它们放入数组中 再次访问 json.org 并学习语法。从字面上看,你可以在 5 分钟内全部理解。 如果您解析 JSON,然后访问外部字典的“myIndex”元素,您将得到一个数组。如果该数组适合您,请使用它。如果没有,请将其内容复制到其他地方。这只是代码。 【参考方案1】:这个json数据可以像这样很容易解析。
NSError *e;
NSArray *dic= [NSJSONSerialization JSONObjectWithData: jsondata options: NSJSONReadingMutableContainers error: &e];
NSMutableArray *datasListe = [[NSMutableArray alloc] init];
NSMutableArray *data = [dic objectForKey:@"myIndex"];
//Now you have array of dictionaries
for(NSDictionary *dataDic in data)
NSString *name = [dataDic objectForkey:@"name"];
NSString *title = [dataDic objectForKey@"title"];
NSString *location = [dataDic objectForKey@"location"];
Datas *pan= [[Datas alloc] initWithTitle:name title:title location:location];
[dataList addObject:pan];
【讨论】:
效果很好,谢谢 不客气,如果你满意,可以接受它作为答案:P【参考方案2】:NSDictionary *firstDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"Raja", @"name",
@"Developer", @"title",
@"USA", @"location",
nil];
NSDictionary *secondDictionary = [NSDictionary dictionaryWithObjectsAndKeys:
@"Deepika", @"name",
@"Engieer", @"title",
@"USA", @"location",
nil];
NSMutableArray * arr = [[NSMutableArray alloc] init];
[arr addObject:firstDictionary];
[arr addObject:secondDictionary];
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:arr options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:jsonData2 encoding:NSUTF8StringEncoding];
NSLog(@"jsonArray as string:\n%@", jsonString);
【讨论】:
我的印象是他想另辟蹊径——他有 JSON 并想提取数据。以上是关于将 Json 表解析为 NSMutableArray [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将 Json 表解析为 NSMutableArray [重复]