Comment créer un NSDictionary avec plusieurs keys?

Je ne suis pas sûr si ce que je vais requestr est en fait un NSDictionary avec plusieurs keys mais ok.

Ce que je veux faire est de créer un NSDictionary avec des keys et des valeurs pour mes données, puis le convertir au format JSON . Le format JSON ressemblerait exactement à ceci:

 { "eventData": { "eventDate": "Jun 13, 2012 12:00:00 AM", "eventLocation": { "latitude": 43.93838383, "longitude": -3.46 }, "text": "hjhj", "imageData": "raw data", "imageFormat": "JPEG", "expirationTime": 1339538400000 }, "type": "ELDIARIOMONTANES", "title": "accIDENTE" } 

J'ai seulement utilisé NSDictionaries comme ceci:

 NSArray *keys = [NSArray arrayWithObjects:@"eventDate", @"eventLocation", @"latitude" nil]; NSArray *objects = [NSArray arrayWithObjects:@"object1", @"object2", @"object3", nil]; dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

Mais le format ci-dessus n'est pas tout sur la valeur-key. Donc, ma question est de savoir comment le NSDictionary serait, pour s'adapter au format JSON ?? Merci d'avoir lu mon message, et désolé si une confusion.

Vous savez que vous pouvez avoir un NSDictionary dans un autre NSDictonary non?

 NSDictionary *eventLocation = [NSDictionary dictionaryWithObjectsAndKeys:@"43.93838383",@"latitude",@"-3.46",@"latitude", nil]; NSMutableDictionary *eventData = [NSDictionary dictionaryWithObjectsAndKeys:eventLocation,@"eventLocation", nil]; [eventData setObject:@"Jun 13, 2012 12:00:00 AM" forKey:@"eventDate"]; [eventData setObject:@"hjhj" forKey:@"text"]; . . . NSMutableDictionary *finalDictionary = [NSMutableDictionary dictionaryWithObjectsAndKeys:eventData,@"eventData", nil]; [finalDictionary setObject:@"ELDIARIOMONTANES" forKey:@"type"]; [finalDictionary setObject:@"accIDENTE" forKey:@"title"]; 

Maintenant, avec les littéraux d'Objective-C, il y a une façon bien meilleure, plus simple et plus propre d'accomplir cela. Voici votre dictionary exact avec cette nouvelle syntaxe:

 NSDictionary *dictionary = @{ @"eventData": @{ @"eventDate": @"Jun 13, 2012 12:00:00 AM", @"eventLocation": @{ @"latitude": @43.93838383, @"longitude": @-3.46 }, @"text": @"hjhj", @"imageData": @"raw data", @"imageFormat": @"JPEG", @"expirationTime": @1339538400000 }, @"type": @"ELDIARIOMONTANES", @"title": @"accIDENTE" }; // Prints: "43.93838383" NSLog(@"%@", dictionary[@"eventData"][@"eventLocation"][@"latitude"]); 

Comment créer NSArray et avec Access for object en utilisant NSDictionary?

… Créer NSArray

 NSArray *studentkeys = [NSArray arrayWithObjects:@"studentName", @"studentBirthDate", @"studentCity", @"studentMobile" nil]; NSArray *objects = [NSArray arrayWithObjects:@"Pravin", @"27/08/1990", @"Bhavnagar",@"7878007531", nil]; 

… pour accéder à l'object NSArray à l'aide de NSDictionary

 NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys]; 

Voici la structure:
Votre object racine est NSMutableDictionary
eventData – key pour l'object NSMutableDictionary avec les keys et les objects:
-> key eventDate object NSSsortingng
-> object eventLocation key NSMutableDictionary avec des keys et des objects:
—-> object latitude NSNumber
—-> object key de longitude NSNumber
-> object text key NSSsortingng
-> key imageData object imageData NSSsortingng plus tard converti en NSData
-> key imageFormat object NSSsortingng
-> key expirationTime object NSNumber
type key de l'object NSSsortingng
touche de title pour l'object NSSsortingng

Si vous voulez plusieurs catégories, vous pouvez suivre ce format

 NSDictionary *jsonObject = @{ @"data1":@[ @{ @"title":@"A" @"subData" : @[ @{ @"title":@"aa" }] } ] };