2014-11-21 11 views
8

NSDictionary ürününü json string.everything ürününe dönüştürmek istiyorum, şu şekilde anlatılan küçük bir sorunum var: Dönüştürmek için aşağıdaki kodları kullanıyorum:NSDictionary öğesinin json dizgisine dönüştürülmesiyle ilgili,/ile değiştiriliyor /

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

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

sonrasında bu NSLog çıktısı: NSString NSDictionary: olarak

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

Ben yöntemini arıyorum Ben çıkışını takip bekliyorum

, nasıl bunu elde edebilirsiniz:

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

o stringByReplacingOccurrencesOfString yöntemi kullanılarak yapılabilir, ama bu kullanmak istemiyorum. Aynı şeyi başarmanın başka bir yolu var mı?

+0

bir terslik mi var? –

cevap

1

JSON nesnesini String'e dönüştürme, eğik çizgiden kaçacaktır. Bu nedenle sonuçta geri eğik çizgi eklenir.

Dizeyi tekrar JSON nesnesine dönüştürür ve nesneyi günlüğe kaydederseniz, sonucu beklendiği gibi görebilirsiniz. Böylece doğrulayabilirsiniz, dizede yanlış bir şey yok.

0

, bu

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

    } 

bu Generate JSON string from NSDictionary in iOS

2

bu deneyin bakın

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 eklemek - için - dize

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

dize - için - sadece sözlüğe `description` yöntemini çağırırsanız NSDictionary

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