这是我第一次在这里提问,所以请原谅我缺乏写作礼仪。 我有一个jSON数据文件,如下所示:
[ {
"category": "Feline",
"text": "CAT",
"definition": "Meow" },
{
"category": "Mammal",
"text": "DOG",
"definition": "Bark" },
{
"category": "Insect",
"text": "ANT ",
"definition": "buzz" },
{
"category": "Insect'",
"text": "MOSQUITO ",
"definition": "buzz" },
{
"category": "Number'",
"text": "10",
"definition": "ten" }
]
我按如下方式导入它, dataList 是一个NSMutableArray,如果使用MutableArray是好的还是我应该使用NSDictionary,我也很困惑?:
-(void)readDataFromFile {
NSString * filePath =[[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
NSError * error;
NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if(error)
{
NSLog(@"Error reading file: %@",error.localizedDescription);
}
self.dataList = (NSMutableArray *)[NSJSONSerialization
JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:NULL];
}
我想根据' text' 按字母顺序对JSON数据进行排序 而且我正在使用部分和索引列表。我主要关注https://www.appcoda.com/ios-programming-index-list-uitableview/教程。
我很困惑如何对JSON数据进行排序,并将它们分成字母表部分,还有iOS联系人将数字放在'#'部分。 我如何实现这一目标?
提前致谢!
答案 0 :(得分:0)
在下面的代码中,我创建了一个包含27个元素的2D数组(1个用于数字 和26为字母表,然后根据该值放置值 字符串初始字符。这段代码对我有用。希望如此 也适合你:)
for (int section = 0; section < 27; section++)
{
[arrSections addObject:[NSMutableArray array]];
}
for (NSDictionary *item in SampleDictionary)
{
NSString *KeyValue = [item[@"DictionaryKEy"] capitalizedString];
*//In your case its Text*
int ascii = (int)[KeyValue characterAtIndex:kZero];
if (ascii >= 65 && ascii <= 90)
{
[arrSections[(ascii - 64)] addObject:item];
}
else
{
[arrSections[0] addObject:item];
}
}