Это довольно просто, вам просто нужно извлечь все ключи в массиве и использовать их в соответствии с вашими потребностями следующим образом: -
Давайте возьмем ваши данные, например: -
{
"Jack": {
"responseHeader": {
"returnCode": "200",
"returnMsg": "SUCCESS"
},
"responseBody": {
"email": "Jack@gmailM.com",
"mobile": "+100000000"
}
},
"Jimmy": {
"responseHeader": {
"returnCode": "200",
"returnMsg": "SUCCESS"
},
"responseBody": {
"email": "Jimmy@gmailM.com",
"mobile": "+100000001"
}
}
}
Используя метод allKeys в вашем словаре, вы можете получить все ключи, присутствующие в ваших данных. Я также обновил ваш код для предотвращения сбоев: -
-(void)readDataFromFile {
NSString * filePath =[[NSBundle mainBundle] pathForResource:@"myjson" ofType:@"json"];
NSError * error;
NSString* fileContents =[NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
if(error){
NSLog(@"Error reading file: %@",error.localizedDescription);
}else if (fileContents){
self.dataDictionary = [NSJSONSerialization
JSONObjectWithData:[fileContents dataUsingEncoding:NSUTF8StringEncoding]
options:0 error:NULL];
if (self.dataDictionary){
NSArray *allKeys = [self.dataDictionary allKeys];
//allKeys will contain String value and after that you can do anything with your array
if (allKeys.count){
self.title = [allKeys componentsJoinedByString:@" or "];
}
/*
You also seprate with comma's or anything you want like this
if (allKeys.count){
self.title = [yourKeys componentsJoinedByString:@", "];
}
*/
}
}
}