Цель C + Reskit - Как обернуть словарь ключом, чтобы избежать проблем с форматированием? - PullRequest
5 голосов
/ 22 ноября 2011

Я пытаюсь обернуть мой HTTP-запрос POST ключом.Другими словами, я хочу превратить это:

{
"category_id"=>"1", 
"food_name_token"=>"Pizza", 
 "id"=>"1"
}

в это:

{
"dish" => 
    {
    "category_id"=>"1", 
    "food_name_token"=>"Pizza", 
    "id"=>"1"
    }
}

Я пытался использовать метод rootKeyPath в RestKit:

serializationMapping.rootKeyPath = @"dish";    

Но это дало мне эту странно отформатированную строку:

{
"dish"=>
    "{
    \n \"category_id\" = 1; 
    \n \"food_name_token\" = Pizza;
    \n id = 1;
    \n}
"}

Она использует знаки равенства и точки с запятой вместо стрелок и запятых, и добавляет все эти разрывы строк и экранирование от обратной косой черты.?И какие-либо предложения о том, что я могу сделать вместо этого?

PS Я использую бэкэнд Rails

Ответы [ 3 ]

2 голосов
/ 25 ноября 2011

Я обнаружил, что с помощью Restkit я могу обернуть атрибуты, используя скобки:

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

И это дает мне нормальный вывод без странного форматирования.

2 голосов
/ 22 ноября 2011
NSDictionary *rootDictionary = [NSDictionary dictionaryWithObject:childDict forKey:@"dish"];

Это должно решить.

0 голосов
/ 22 ноября 2011

Добавьте элементы в NSArray, а затем добавьте массив в NSDictionary, например:

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