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" }] } ] };