Iphone 目标C和x2B;Reskit-如何用密钥包装字典以避免格式问题?

Iphone 目标C和x2B;Reskit-如何用密钥包装字典以避免格式问题?,iphone,objective-c,ruby-on-rails,dictionary,restkit,Iphone,Objective C,Ruby On Rails,Dictionary,Restkit,我正在尝试用密钥包装我的HTTP POST请求。换言之,我想把这个转变为: { "category_id"=>"1", "food_name_token"=>"Pizza", "id"=>"1" } 为此: { "dish" => { "category_id"=>"1", "food_name_token"=>"Pizza", "id"=>"1" } } 我尝试在RestKit中使用“rootKe

我正在尝试用密钥包装我的HTTP POST请求。换言之,我想把这个转变为:

{
"category_id"=>"1", 
"food_name_token"=>"Pizza", 
 "id"=>"1"
}
为此:

{
"dish" => 
    {
    "category_id"=>"1", 
    "food_name_token"=>"Pizza", 
    "id"=>"1"
    }
}
我尝试在RestKit中使用“rootKeyPath”方法:

serializationMapping.rootKeyPath = @"dish";    
但这给了我一个格式奇怪的字符串:

{
"dish"=>
    "{
    \n \"category_id\" = 1; 
    \n \"food_name_token\" = Pizza;
    \n id = 1;
    \n}
"}
它使用等号和分号代替箭头和逗号,并添加所有这些换行符和转义反斜杠

知道为什么吗?还有关于我能做什么的建议吗

另外,我正在使用Rails后端

NSDictionary *rootDictionary = [NSDictionary dictionaryWithObject:childDict forKey:@"dish"];

这应该可以解决问题。

将项目添加到NSArray中,然后将数组添加到NSDictionary中,如下所示:

NSDictionary *item = [NSDictionary dictionaryWithObjectsAndKeys:[NSArray arrayWithObject:results], @"Parent",nil];
NSLog(@"NSDicitonary %@",item);
NSLog(@"Child values %@",[item valueForKey:@"Parent"]);

我发现使用Restkit可以使用括号包装属性:

    [dishMapping mayKeyPath:@"dish[food_name_token]" toAttribute:@"placeToken"];

这给了我一个没有奇怪格式的正常输出。

Jonathan是如何得到childDict的?你的回答让我意识到问题不在于RestKit的“rootKeyPath”方法,因为我尝试了你的解决方案,它产生了相同的结果。相反,问题在于Objective C序列化Dictionary对象的方式。即使它以正确的方式包装,它仍然会给我这些额外的转义字符串,这使得服务器很难解析。它没有完全回答我的问题,但它确实回答了我作为标题提出的问题(尽管我意识到这是一个错误的问题,所以我可能应该改变它)。我也从这个链接上读到了关于使用数组的内容:但我不明白如何用他的方式实现它。这个回答是一个救命稻草。非常感谢。