2013-10-10 6 views
0

나는 형식 아래 NSJSONSerialization을 사용하는 JSON 문자열 서식을 지정하려는 :특정 형식의 JSON 문자열을 작성하는 방법은 무엇입니까?

{ 
"data":{"userName":"rrullo","password":"rrullo!"}, 
"meta":{"appId":"S3B9CU4R2B9JTXV9254Y","appVersion":"2.1.0","serverVersion":"1.1.0","platform":"iOS","deviceToken":"1234","tm_session_id":"BB00000"} 
} 

을하지만 그래도이 형식을 달성하는 방법을 단서가 없다. 누군가 나를 도와주세요 ......

+0

1) 학습하는 데 도움이 json.org의 JSON 구문 2) 가장 바깥 쪽 JSON "객체"를 나타내는 외부 사전을 만듭니다. 3) 두 개의 내부 사전을 작성하여 외부 사전에 삽입하십시오. 4) NSJSONSerialization으로 직렬화합니다. –

답변

2

먼저 두 개의 NSDictionary를 '메타'및 '데이터'정보로 채 웁니다. 그런 다음 주 NSDictionary에로 사람들을 추가 한 다음 지금 당신이있는 NSString

NSError *error; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:mainDict 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 
NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

희망에 그 mainDict 변환 NSJsonSerialization을 사용할 수 있습니다

NSDictionary * metaDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"appId", @"S3B9CU4R2B9JTXV9254Y", @"appVersion", @"2.1.0", @"serverVersion", @"1.1.0", @"platform", @"iOS",..., nil]; 

NSDictionary * dataDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"userName", @"rrullo", @"password", @"rrullo!", nil]; 

NSDictionary * mainDict = [[NSDictionary alloc] initWithObjectsAndKeys: 
@"data", dataDict, @"meta", metaDict, nil]; 

NSJsonSerialization

를 사용하여 직렬화이

+0

고마워요 ... 이것은 많은 도움이됩니다 ... –

+0

@RashmiRanjanmallick 그것이 당신을 위해 일했다면 정답으로 표시하십시오. – onetwopunch

2
NSDictionary dictData = @{ @"UserName":@"rrullo", @"password":@"rrullo!"}; 
NSDictionary dictMeta = @{ @"appId":@"S3B9CU4R2B9JTXV9254Y", etc}; 
NSDictionary dictJSON = @{ @"data":dictData, @"meta":dictMeta }; 

NSError *error = nil; 
NSData *dataJSON = [NSJSONSerialization dataWithJSONObject:dictJSON 
                options:NSJSONWritingPrettyPrinted 
                error:&error]; 
if (!error) { 
    NSString *jsonString = [[NSString alloc] initWithData:dataJSON encoding:NSUTF8StringEncoding]; 
} else { 
    NSLog(@"Error: %@", error); 
} 
+0

@RashmiRanjanmallick - 코드가하는 일을 이해하지 못하면 고맙게 생각하지 마십시오. 사람들이 다른 소스에서 복사/편집하여 JSON 작업을 시도하면 거의 항상 신속하게 작동하지 않습니다. –