如何将 NSDictionary 解析为数组数组?
Posted
技术标签:
【中文标题】如何将 NSDictionary 解析为数组数组?【英文标题】:How to parse NSDictionary into array of arrays? 【发布时间】:2012-06-04 08:12:42 【问题描述】:here 是我的数据模式,我想创建一个节数组,在这种情况下,每个节将在该节中包含一个行数组。我看了以下问题:
2D arrays using NSMutableArray objective-c multi-dimensional array还有其他一些帖子,但没有得到任何结果。谁能指导我如何创建一组部分,每个部分都应包含自己的行..提前致谢
编辑 我已经解析了我的数据,pastebin 链接上的日志结果是一个 NSDictionary 这是我获取和解析它的方式:
NSString*key1=[ result objectForKey:@"key" ];
NSString *s1=[@"http://" stringByAppendingString:server.text];
NSString *s2=[s1 stringByAppendingString:@"/ipad/button.php"];
NSURL *url2=[NSURL URLWithString:[s2 stringByAppendingString:[@"?key=" stringByAppendingString:key1]]];
NSData *data2=[NSData dataWithContentsOfURL:url2];
result2=[NSJSONSerialization JSONObjectWithData:data2 options:NSJSONReadingMutableContainers error:nil];
pastebin 中的结果是这样的:NSLog(@"Result: %@", result2);
【问题讨论】:
@Jack,我听从了你的回答,但没有得到任何结果,你能提供更多帮助吗? 我没有给出任何答案,我只是重新格式化了你的问题 啊抱歉,this 的第三个答案是由一个叫 Jack 的人给出的。我坚信他是你:) result2 是一个有效的字典对象吗? result2 包含两个主要变量,一个称为版本,它是一个数字,以及一个数组数组(内部数组的元素是字典..).. 它是这样的; buttonVersion:(some_number), templateCategory1:(obj1,obj2...);Category2:(obj1, obj2...)... 我希望场景足够清晰 【参考方案1】:您的数据是 JSON 格式,因此只需使用 NSJSONSerialization
类为您创建数组数组。
NSString *yourData;
NSData *data = [yourData dataUsingEncoding:NSUTF8StringEncoding];
NSArray *arrayOfArrays = [NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments error:nil];
要在表格视图中使用您的部分数组,只需使用通常的表格视图datasource
方法:
// numberOfSectionsInTableView
return [array count];
// numberOfRowsInSection
return [[array objectAtIndex:section] count];
// cellForRowAtIndexPath
cell.textLabel.text = [[[array objectAtIndex:indexPath.section]
objectAtIndex:indexPath.row]
objectForKey:"name"];
【讨论】:
我已经用 NSJSONSerialization 解析了数据,但我会试试你的代码 然后使用错误变量NSError *error;
像这样...error:&error]; NSLog(@"%@", error);
看看它说了什么。
那么请记录你的字符串、你的数据、你的数组和你的错误是什么——错误会变得很明显。
请看我的编辑,我之前已经使用过 NSJSONSerialization。从这一点上我能做些什么?
恭喜,您已经解决了问题。现在您需要做的就是检查复选标记...要使用 tableview 中的部分和行,请参阅我的编辑。以上是关于如何将 NSDictionary 解析为数组数组?的主要内容,如果未能解决你的问题,请参考以下文章
根据 NSDictionary 键值将 NSArray 拆分为子数组
如何通过数组对象的 NSDate 日期将 NSArray 拆分为 NSDictionary?
plist中的NSdictionary对象需要是数组的数组,怎么转换?