我不知道如果我要问实际上是一个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
格式? 感谢您阅读我的文章,和对不起,如果任何混淆。
你知道你可以有一个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"];
现在用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];
...要访问的NSArray对象使用的NSDictionary
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
type
为对象键NSString
title
为对象键NSString
如果你想多个类别,你可以按照这个格式
NSDictionary *jsonObject = @{
@"data1":@[
@{
@"title":@"A"
@"subData" : @[
@{
@"title":@"aa"
}]
}
]
};