How to create an NSDictionary with multiple keys?
Solution 1
You can have a NSDictionary
inside another NSDictonary
:
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"];
Solution 2
Now with Objective-C literals there is a much better, easier, and cleaner way of accomplishing this. Here is your exact dictionary with this new syntax:
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"]);
Solution 3
How to Create NSArray and with Access for object using NSDictionary ?
... Create NSArray
NSArray *studentkeys = [NSArray arrayWithObjects:@"studentName", @"studentBirthDate", @"studentCity", @"studentMobile" nil];
NSArray *objects = [NSArray arrayWithObjects:@"Pravin", @"27/08/1990", @"Bhavnagar",@"7878007531", nil];
...to Access to NSArray Object Using NSDictionary
NSDictionary *dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
Solution 4
Here is the structure:
Your root object is NSMutableDictionary
eventData
- key for object NSMutableDictionary
with keys and objects:
->key eventDate
object NSString
->key eventLocation
object NSMutableDictionary
with keys and objects:
----> key latitude
object NSNumber
----> key longitude
object NSNumber
-> key text
object NSString
-> key imageData
object NSString
later converted to NSData
-> key imageFormat
object NSString
-> key expirationTime
object NSNumber
type
key for object NSString
title
key for object NSString
Comments
-
donparalias over 3 years
I am not sure if what I am going to ask is actually an
NSDictionary
with multiple keys but ok.What I want to do is create an
NSDictionary
with keys and values for my data and then convert it toJSON
format. TheJSON
format would look exactly like this :{ "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" }
I ve only used
NSDictionaries
like this :NSArray *keys = [NSArray arrayWithObjects:@"eventDate", @"eventLocation", @"latitude" nil]; NSArray *objects = [NSArray arrayWithObjects:@"object1", @"object2", @"object3", nil]; dictionary = [NSDictionary dictionaryWithObjects:objects forKeys:keys];
But the above format is not all about key - value. So my question is how would the
NSDictionary
be , to fit theJSON
format?? Thanks for reading my post , and sorry if any confusion.