Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在序列化为json之前将NSDictionary添加到另一个NSDictionary_Ios_Json_Serialization_Nsdictionary - Fatal编程技术网

Ios 如何在序列化为json之前将NSDictionary添加到另一个NSDictionary

Ios 如何在序列化为json之前将NSDictionary添加到另一个NSDictionary,ios,json,serialization,nsdictionary,Ios,Json,Serialization,Nsdictionary,我不熟悉ios编程。我将数据放入NSDictionary中,然后使用AFJSONRequestSerializer将其序列化为json,然后再将其发送到服务器 现在,如果我的json有简单的结构,比如键->值对,那么我可以很容易地做到,但是如果我的结构是这样的呢- "person" = ( { "location" = { city = "Man

我不熟悉ios编程。我将数据放入NSDictionary中,然后使用AFJSONRequestSerializer将其序列化为json,然后再将其发送到服务器

现在,如果我的json有简单的结构,比如键->值对,那么我可以很容易地做到,但是如果我的结构是这样的呢-

"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的丑陋组合,最好选择其中之一。