2010-05-14 3 views
2

J'ai un peu de mal à traiter mes NSStrings dans une chaîne JSON valide.Problème de formatage correct de NSString pour 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]; 

chaîne JSON Expected:

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

chaîne JSON actuelle:

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

Pas vraiment sûr où je vais mal. Des pensées?

Merci

Sam

Répondre

1

La partie paramsConfig de votre JSON est une chaîne, et sera échappé en tant que tel. IIRC, si vous changez paramsConfig pour être un NSDictionary, alors définissez les valeurs pour l'email et le mot de passe là, le JSONRepresentation correct sera produit.

+0

Spot on! Merci beaucoup fonctionne comme un charme. – Sam