如何创建具有多个键的 NSDictionary



我不确定我要问的是否真的是一个带有多个键的NSDictionary,但还可以。

我想做的是为我的数据创建一个包含键和值的NSDictionary,然后将其转换为JSON格式。JSON格式将如下所示:

{
    "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"
}

我只用过这样的NSDictionaries

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

但上述格式并不全是关于键值的。所以我的问题是NSDictionary如何,以适应JSON格式?感谢您阅读我的帖子,如果有任何困惑,请深表歉意。

您可以在另一个NSDictonary中有一个NSDictionary

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

现在有了Objective-C文字,有一种更好、更简单、更干净的方法来实现这一目标。以下是使用此新语法的确切字典:

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

如何使用 NSDictionary 创建 NSArray 并访问对象?

。创建 NSArray

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

。使用 NSDictionary 访问 NSArray 对象

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

这是结构:
您的根对象是 NSMutableDictionary
eventData - 具有键和对象的对象NSMutableDictionary的键:
->键eventDate对象 NSString
->键eventLocation对象NSMutableDictionary与键和对象:
---->键latitude对象 NSNumber
---->键longitude对象 NSNumber
-> 键text对象 NSString
->键imageData对象NSString后来转换为 NSData
-> 键imageFormat对象 NSString
-> 键expirationTime对象 NSNumber
对象 NSString
type键 对象NSStringtitle

如果你想要多个类别,你可以遵循这个格式

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

最新更新