【问题标题】:NSDictionary formatNSDictionary 格式
【发布时间】:2015-10-29 10:49:13
【问题描述】:
谁能帮我创建一个如下结构的 NSDictionary 格式:
{
key1 = "value1";
key2 = "value2";
key3 = [
{
key01 = "value01";
key02 = "value02";
},
{
key01 = "value01";
key02 = "value02";
},
{
key01 = "value01";
key02 = "value02";
}
];
}
【问题讨论】:
标签:
ios
objective-c
json
nsarray
nsdictionary
【解决方案1】:
只是为了回答您关于将 JSON 数据转换为 NSDictionary 的问题,这里是:
(假设您已经获得了 JSON 数据)
// add the first 2 VALUES with it's KEYS
NSMutableDictionary *mainDict = [NSMutableDictionary dictionary];
[mainDict setValue:VALUE1 forKey:KEY1];
[mainDict setValue:VALUE2 forKey:KEY2];
// then for the last KEY, create a mutable array where you will store your sub dictionaries
NSMutableArray *ma = [NSMutableArray array];
NSMutableDictionary *subDict = [NSMutableDictionary dictionary];
[subDict setValue:SUB_VALUE1 forKey:SUB_KEY1];
[subDict setValue:SUB_VALUE1 forKey:SUB_KEY2];
[ma addObject:subDict];
// then add that array to your main dictionary
[mainDict setValue:ma forKey:KEY3];
// check the output
NSLog(@"mainDict : %@", mainDict);
// SAMPLE DATA - Test this if this is what you want
NSMutableDictionary *mainDict = [NSMutableDictionary dictionary];
[mainDict setValue:@"value1" forKey:@"key1"];
[mainDict setValue:@"value2" forKey:@"key2"];
NSMutableArray *ma = [NSMutableArray array];
NSMutableDictionary *subDict = [NSMutableDictionary dictionary];
[subDict setValue:@"subValue1" forKey:@"subKey1"];
[subDict setValue:@"subValue2" forKey:@"subKey2"];
[ma addObject:subDict];
[mainDict setValue:ma forKey:@"key3"];
NSLog(@"mainDict : %@", mainDict);
【解决方案2】:
obj-c 中有 API 可以将 Json 转换为 nsdictionary 。我想你应该尝试一下:
- 先将json转成nsdata(假设你上面的JSON是字符串格式的)
2.然后你 API 将其转换为 NSDictionary :
NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
【解决方案3】:
以下内容应该适合您:
NSString *jsonString = @"{\"ID\":{\"Content\":268,\"type\":\"text\"}}";
NSData *data = [jsonString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
NSLog(@"%@", jsonDict[@"ID"][@"Content"]);
将返回您:
268
【解决方案4】:
试试这个代码,它可能对你有帮助。
NSDictionary *dicationary = @{
@"key1":@"value1",
@"key2":@"value2",
@"key3":@[@{@"key01":@"value01",@"key02":@"value02"},
@{@"key01":@"value01",@"key02":@"value02"},
@{@"key01":@"value01",@"key02":@"value02"}]
};