Ios 如何在序列化为json之前将NSDictionary添加到另一个NSDictionary
我不熟悉ios编程。我将数据放入NSDictionary中,然后使用AFJSONRequestSerializer将其序列化为json,然后再将其发送到服务器 现在,如果我的json有简单的结构,比如键->值对,那么我可以很容易地做到,但是如果我的结构是这样的呢-Ios 如何在序列化为json之前将NSDictionary添加到另一个NSDictionary,ios,json,serialization,nsdictionary,Ios,Json,Serialization,Nsdictionary,我不熟悉ios编程。我将数据放入NSDictionary中,然后使用AFJSONRequestSerializer将其序列化为json,然后再将其发送到服务器 现在,如果我的json有简单的结构,比如键->值对,那么我可以很容易地做到,但是如果我的结构是这样的呢- "person" = ( { "location" = { city = "Man
"person" = (
{
"location" = {
city = "Manila";
Country = "Phillipines";
};
image = "http://mymanila.com/1.png";
link ="http://mymanila.com/1.html"
}
);
我的问题是如何放置location,location本身就是另一个具有键值对的字典?谢谢。给你
NSDictionary *locationDictionary = @
{
@"city" : @"Manila",
@"Country" : @"Phillipines"
};
NSDictionary *personDictionary = @
{
@"location" : locationDictionary,
@"image" : @"http://mymanila.com/1.png",
@"link" : @"http://mymanila.com/1.html"
};
NSDictionary *fullDictionary = @
{
@"person" : personDictionary
};
现在,只需将fullDictionary
序列化如下:
NSMutableDictionary* person = [NSMutableDictionary dictionary];
NSDictionary* location = @{@"city":@"Manila", @"Country":@"Phillipines"};
[person setObject:location forKey:@"location"];
[person setObject:@"http://mymanila.com/1.png" forKey:@"image"];
[person setObject:@"http://mymanila.com/1.html" forKey:@"link"];
然后您可以将其转换为JSON,如下所示:
NSData *dictData = [NSKeyedArchiver archivedDataWithRootObject:person];
id jsonObject = [NSJSONSerialization JSONObjectWithData:dictData options:NSJSONReadingMutableContainers error:nil];
文字语法和setObject的丑陋组合,最好选择其中之一。