如何创建具有多个键一个NSDictionary?(How to create an NSDictio

2019-06-25 19:18发布

我不知道如果我要问实际上是一个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格式? 感谢您阅读我的文章,和对不起,如果任何混淆。

Answer 1:

你知道你可以有一个NSDictionary内的另一个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"];


Answer 2:

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


Answer 3:

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

... NSArray的创建

NSArray *studentkeys = [NSArray arrayWithObjects:@"studentName", @"studentBirthDate", @"studentCity", @"studentMobile"  nil];

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

...要访问的NSArray对象使用的NSDictionary

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


Answer 4:

这里是结构:
你的根对象NSMutableDictionary
eventData -为对象键NSMutableDictionary连键和对象:
- >键eventDate对象NSString
- >键eventLocation对象NSMutableDictionary连键和对象:
---->键latitude对象NSNumber
---->键longitude对象NSNumber
- >键text对象NSString
- >键imageData对象NSString后来转化为NSData
- >键imageFormat对象NSString
- >键expirationTime对象NSNumber
type为对象键NSString
title为对象键NSString



Answer 5:

如果你想多个类别,你可以按照这个格式

NSDictionary *jsonObject = @{
                           @"data1":@[
                              @{
                                @"title":@"A"

                                @"subData" : @[
                                @{
                                  @"title":@"aa"
                                 }]
                                }

                             ]
                         };


文章来源: How to create an NSDictionary with multiple keys?