2010-05-14 39 views
2

将我的NSString处理成有效的JSON字符串时遇到一些麻烦。正确格式化NSString for 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"} 

不能确定我要去哪里错了。有什么想法吗?

感谢

山姆

回答

1

您的JSON的paramsConfig部分是一个字符串,将被转义为这样的。 IIRC,如果您将paramsConfig更改为NSDictionary,然后在此处设置电子邮件和密码的值,则会输出正确的JSONRepresentation。

+0

现货! 非常感谢你的魅力。 – Sam 2010-05-14 13:24:22