2014-04-10 5 views
0

내 앱에서 다른 사용자에게 내 앱을 열고 매개 변수를 전달하는 URL이 포함 된 이메일을 보내는 공유 기능을 만들고 있습니다. 나는 조금 주위에 인터넷 검색을했고, 올라 갔다. this.맞춤 URL 스키마의 JSON 데이터

나는 그 끔찍한 예를 안다. 그러나 그것은 내가 발견 할 수있는 누구나 이어도. NSNumber, NSDate 및 NSString을 전달해야하므로이 방법이 가장 편리한 방법이라고 생각했습니다. 지금 당장은 그 코드를 이해할 수 없습니다. 나는 앞으로 나아가 SBJson 라이브러리를 얻었습니다. SBJson 라이브러리는 그가 사용하고있는 것처럼 보입니다. 누군가가 나를 도울 수 있습니까?

답변

1

iOS에서 JSON 직렬화를 위해 라이브러리를 사용할 필요는 없습니다. iOS 5.0부터는 NSJSONSerialization 클래스가이 클래스를 사용할 수 있습니다. 당신은 타임 스탬프 대신 적절한있는 NSDate이있는 경우

https://developer.apple.com/library/ios/documentation/foundation/reference/nsjsonserialization_class/Reference/Reference.html는 JSON 문자열

+(NSString*) jsonStringRepresentationOfSelectedReceiptients:(NSArray*) contactsList { 
    NSMutableArray* contactsArray = [[NSMutableArray alloc]init]; 
    for (ContactObject *contactObj in contactsList) { 
     NSDictionary* ltPair = @{@"phone_no": [NSNumber numberWithLongLong:contactObj.phoneNo, @"email_id": contactObj.emailId, @"display_name": contactObj.displayName], @"creation_date": [NSDate dateWithTimeIntervalSince1970:contactObj.timeStamp]]}; 
     [contactsArray addObject:ltPair]; 
    } 
    NSData *jsonData=[NSJSONSerialization dataWithJSONObject:contactsArray options:NSJSONWritingPrettyPrinted error:nil]; 
    NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 
    NSLog(@"json string: %@", recptJson); 
    return jsonString; 
} 

에 연락처 목록을 변환하는이 코드를 고려, u는 직접 사용할 수 있습니다. 희망이 도움이됩니다.

+0

깔끔한! 나는 할 수있을 때 이것을 시도 할 것이다. – Keaton

+0

URL이 작동하지 않아 json 형식으로 계속 표시됩니다. – Keaton

+0

수신 엔드에서 json 문자열을 NSDictionary로 역 직렬화해야합니다. 내 대답을 확인하십시오. http://stackoverflow.com/a/22981186/1407906 –