Incorrect NSString formatting for JSON

Having a little problem processing my NSStrings into a valid JSON string.

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];

      

Expected JSON string:

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

      

Actual JSON string:

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

      

Don't know where I am going wrong. Any thoughts?

thanks

Sam

+2


a source to share


1 answer


The paramsConfig parameter of your JSON is a string and will be escaped as such. IIRC, if you change paramsConfig to be NSDictionary then set values ​​for email and password there, correct JSONRepresentation will be output.



+1


a source







All Articles