我有一个JSON字符串,如下所示;
{
"1": {
"name": "Jerry",
"age": "12"
},
"2": {
"name": "Bob",
"age": "16"
"3": {.....
}
我只显示了2条记录,但此JSON中将有100条记录。这个1,2,3等中有一个订单是记录的订单号。
我正在订购这些记录(如显示第1条记录,然后是第2条和第3条,依此类推)。我的代码如下。
这里有一个问题,当我有超过10条记录时,它不会按照订单显示记录。它首先显示1然后是11,12,13 ......直到19.然后它显示2然后21,22,23 ....直到29。
我的代码如下,如何修改它以解决我的问题?
可能的解决方案:如果我们可以从小于10的数字中添加前导0,则应该正确过滤掉。但我知道这不是正确的方法。
NSDictionary *dic = content;
self.mutArr = [[NSMutableArray alloc] init];
NSArray *array = [dic allKeys];
NSArray * sortedArray = [array sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
for (NSString *str in sortedArray)
{
NSDictionary *dic2 = [dic objectForKey:str];
Person *person = [[Person alloc] init];
person.nameOfRestaurant=[dic2 objectForKey:@"name"];
person.personStartDate=[dic2 objectForKey:@"age"];
[self.mutArr addObject:person];
}
self.personEntries = [NSArray arrayWithArray:self.mutArr];
答案 0 :(得分:0)
这是因为您按字典排序数字(即好像它们是单词)。您应该提供自己的排序比较器实现,它将字符串转换为整数,然后才对它们进行排序以进行排序。