Проблема с правильным форматированием NSString для JSON - PullRequest
2 голосов
/ 14 мая 2010

Возникли небольшие проблемы при обработке моих строк NSS в правильную строку JSON.

NSString *version       = @"1.1";
NSString *callMethod    = @"auth.login";
NSString *paramsConfig  = [NSString stringWithFormat:@"{\"email\":\"%@\",\"password\":\"%@\"}", usernameString, passwordString];

int queryId     = arc4random()% 10000000;

NSDictionary *userData          = [NSDictionary dictionaryWithObjectsAndKeys:version, @"version", callMethod, @"method", [NSNumber numberWithInt:queryId], @"id", paramsConfig, @"params", nil];
NSString* jsonString            = [userData JSONRepresentation];

Ожидаемая строка JSON:

{"version":"1.1","params":"{"email":"s","password":"s"}","id":12345678,"method":"auth.login"}

Фактическая строка JSON:

{"version":"1.1","params":"{\"email\":\"s\",\"password\":\"s\"}","id":12345678,"method":"auth.login"}

Не совсем уверен, где я иду не так. Есть мысли?

Спасибо

Sam

1 Ответ

1 голос
/ 14 мая 2010

Часть paramsConfig вашего JSON является строкой и будет экранирована как таковая. IIRC, если вы измените paramsConfig на NSDictionary, а затем установите значения для адреса электронной почты и пароля, будет выведен правильный JSONRepresentation.

...