2014-11-21 15 views
8

Voglio convertire NSDictionary in json string.everything sta funzionando bene, ho un piccolo problema che è descritto come segue: Ho un codice seguente per la conversione di NSDictionary a NSString:Problema nella conversione di NSDictionary in stringa json, in sostituzione di/con /

-(NSString *)dictToJson:(NSDictionary *)dict 
{ 
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:nil]; 
    return [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding]; 
} 

sto chiamando il metodo come:

NSLog(@"%@", [self dictToJson:@{@"hello" : @"21/11/2014 10:07:42 AM"}]); 

segue è l'uscita di questo NSLog:

{ 
    "hello" : "21\/11\/2014 10:07:42 AM" 
} 

Mi aspetto seguente output, come posso raggiungerlo:

{ 
     "hello" : "21/11/2014 10:07:42 AM" 
} 

può essere fatto utilizzando stringByReplacingOccurrencesOfString metodo, ma io non voglio questo da usare. c'è qualche altro modo per ottenere lo stesso?

+0

c'è qualcosa che non va se si chiama il metodo 'descrizione' sul dizionario? –

risposta

1

La conversione dell'oggetto JSON in stringa eviterà la barra diretta. Questo è il motivo per cui la barra rovesciata viene aggiunta al risultato.

Se si converte la stringa in oggetto JSON e si registra l'oggetto, è possibile vedere il risultato come previsto. Così puoi verificare, non c'è niente di sbagliato nella stringa.

0

aggiungere questo

-(NSString*) bv_jsonStringWithPrettyPrint:(BOOL) prettyPrint; 



-(NSString *)dictToJson:(NSDictionary *)dict 
    { 

     NSData *jsonData = [NSJSONSerialization dataWithJSONObject: dict 
                options:(NSJSONWritingOptions) (prettyPrint ? NSJSONWritingPrettyPrinted : 0) 
                error:&error]; 

    if (! jsonData) { 
     NSLog(@"bv_jsonStringWithPrettyPrint: error: %@", error.localizedDescription); 
     return @"{}"; 
    } else { 
     return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    } 

    } 

riferiscono questa Generate JSON string from NSDictionary in iOS

2

Prova questa,

NSData *json = [NSJSONSerialization dataWithJSONObject:dict 
               options:0 
               error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:json encoding:NSUTF8StringEncoding]; 
// This will be the json string in the preferred format 
jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\/" withString:@"/"]; 

// And this will be the json data object 
NSData *processedData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; 
21

NSDictionary - a - stringa

NSError * err; 
NSData * jsonData = [NSJSONSerialization dataWithJSONObject:response options:0 error:&err]; 
NSString * myString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

stringa - a - NSDictionary

NSError * err; 
NSDictionary * response = (NSDictionary *)[NSJSONSerialization JSONObjectWithData:[NSData dataFromString:str] options:NSJSONReadingMutableContainers error:&err];