在我的应用中,我正在创建一个共享功能,向另一个用户发送一封带有URL的电子邮件,以打开我的应用并传递参数。我用Google搜索了一下,然后想出了this.
我知道这是一个可怕的例子,但这就是我所能找到的。由于我需要传递一个NSNumber,一个NSDate和一个NSString,我认为这是最方便的方法。现在,我无法理解那段代码。我继续前进并获得了SBJson库,这是他似乎正在使用的。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
您不必在iOS中使用库进行JSON序列化。从iOS 5.0开始,有一个类NSJSONSerialization可用于执行此操作。 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;
}
如果你有适当的NSDate而不是时间戳,你可以直接使用它。 希望这会有所帮助。