2013-04-26 3 views
3

NSDictionary에 파일 이름과 파일 경로를 저장하는 응용 프로그램에서 작업 중입니다. 내 사전처럼, 그건파일 경로가있는 NSDictionary의 JSON 문자열

Dict Path : { 
    background = "file://localhost/var/mobile/Applications/6118A03F-345B-42D5-AC19-25F6D9AC4484/Documents/background.caf"; 
    bgMusic = "file://localhost/var/mobile/Applications/6118A03F-345B-42D5-AC19-25F6D9AC4484/Documents/bgMusic.caf"; 
} 

는 잘 작동하지만 내가

NSString *strPathForSong = [json stringWithObject:dictPath]; 
     NSLog(@"path sting : %@",strPathForSong); 

이 널 (null) 문자열을 반환 JSON 문자열에 사전을 변환하려고 할 때. 그래서 사전을 "/"문자열을 json 문자열로 변환하는 방법은 무엇입니까 ?? 미리 감사드립니다.

+0

NSDictionary를 JSON으로 변환하는 방법에 대한 소스 코드를 제공해 주실 수 있습니까? –

+0

나는 이미 내 질문에 언급. 확인해주십시오. – user7388

답변

10

경로 분리 기호는 사전을 JSON 문자열로 변환 할 때 문제가되지 않아야합니다.
샘플은 json 변수의 유형 & 초기화를 표시하지 않습니다하지만 당신은 딕셔너리에서 JSON 표현을 다음과 같은 방법으로 구할 수 있습니다 (경로 구분에 대한 탈출 적절한 포함이 여기에 잘 작동

NSDictionary* jsonDict = @{ @"background": @"file://localhost/var/mobile/Applications/6118A03F-345B-42D5-AC19-25F6D9AC4484/Documents/background.caf", 
          @"bgMusic": @"file://localhost/var/mobile/Applications/6118A03F-345B-42D5-AC19-25F6D9AC4484/Documents/bgMusic.caf"}; 
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:0 error:nil]; 
NSString* jsonString = [[NSString alloc] initWithBytes:[jsonData bytes] length:[jsonData length] encoding:NSUTF8StringEncoding]; 

NSLog(@"Dict:%@", jsonString); 

을 로그 라인)

+1

주어진 jsonDict에서 정상적으로 작동하지만 NSData에 대한 dicationary의 이름을 바꿀 때 충돌이 발생하고 "이유 : 'JSON 쓰기 (NSURL)의 형식이 잘못되었습니다' '"오류가 발생합니다. – user7388

+4

경로가 사전에 NSURL 개체로 저장되어있는 것 같습니다. 먼저 [NSURLobject absoluteString]을 사용하여 문자열로 변환하십시오. –

+0

오 ... 알았어 ... 시도해 보자. – user7388

관련 문제