如何在序列化为 json 之前将 NSDictionary 添加到另一个 NSDictionary
Posted
技术标签:
【中文标题】如何在序列化为 json 之前将 NSDictionary 添加到另一个 NSDictionary【英文标题】:How to add NSDictionary to another NSDictionary before serializing to json 【发布时间】:2014-07-23 21:53:48 【问题描述】:我是 ios 编程新手。我将数据放在 NSDictionary 中,然后使用 AFJSONRequestSerializer 序列化为 json,然后再将其发送到服务器。
现在,如果我的 json 具有简单的结构,例如键 -> 值对,那么我可以轻松做到,但如果我的结构是这样的 -
"person" = (
"location" =
city = "Manila";
Country = "Phillipines";
;
image = "http://mymanila.com/1.png";
link ="http://mymanila.com/1.html"
);
我的问题是如何放置位置,它本身是另一个具有键值对的字典?谢谢。
【问题讨论】:
【参考方案1】:给你。
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
。
【讨论】:
【参考方案2】:像这样:
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的丑陋组合,还是二选一吧。以上是关于如何在序列化为 json 之前将 NSDictionary 添加到另一个 NSDictionary的主要内容,如果未能解决你的问题,请参考以下文章