Ios iPhone应用程序-将json数组转换为电子邮件附件
我正在制作一个iPhone应用程序,在db上运行查询并向用户显示结果,理想情况下,我希望能够在显示结果后通过电子邮件发送这些结果 我正在使用json数组。从我在网上读到的内容来看,我相信我必须先将其转换为CSV文件,然后将其附加到电子邮件中。然后,用户应该能够从其电子邮件中下载文件并在excel中打开 我将如何进行这项任务?我是否需要为转换制作一个API,或者这是我可以在xcode上做的事情?我对这一点还不熟悉,希望了解有关流程的任何细节Ios iPhone应用程序-将json数组转换为电子邮件附件,ios,json,csv,email-attachments,Ios,Json,Csv,Email Attachments,我正在制作一个iPhone应用程序,在db上运行查询并向用户显示结果,理想情况下,我希望能够在显示结果后通过电子邮件发送这些结果 我正在使用json数组。从我在网上读到的内容来看,我相信我必须先将其转换为CSV文件,然后将其附加到电子邮件中。然后,用户应该能够从其电子邮件中下载文件并在excel中打开 我将如何进行这项任务?我是否需要为转换制作一个API,或者这是我可以在xcode上做的事情?我对这一点还不熟悉,希望了解有关流程的任何细节 您可以在Xcode中将Json转换为Csv 如果您的j
- 您可以在Xcode中将Json转换为Csv
- 如果您的json(NSDictionary)键在整个阵列中都是相同的,那么可以像下面这样轻松地完成
NSArray *keys = [self.dictionary allKeys]; // -- you need to sort the keys first because the index order is not identical every time in nsdictionary. NSArray *sortedKeys = [keys sortedArrayUsingSelector:@selector(compare:)]; NSMutableString *large_CSV_String = [[NSMutableString alloc] initWithFormat:@"%@",[sortedKeys objectAtIndex:0]; for(int i = 1; i<[sortedKeys count]; i++){ [large_CSV_String appendFormat:@",%@",[sortedKeys objectAtIndex:i]]; } [large_CSV_String appendFormat:@"\n"];
NSArray*keys=[self.dictionary allKeys]; //--您需要首先对键进行排序,因为在nsdictionary中每次索引顺序都不相同。 NSArray*sortedKeys=[使用selector:@selector(比较:)]的键SortedDarray]; NSMutableString*large_CSV_String=[[NSMutableString alloc]initWithFormat:@“%@,[sortedKeys objectAtIndex:0];
对于(int i=1;i)来说,结果需要是附件还是可以在电子邮件正文中?在Excel中打开的附件中感谢您的详细解释raja,这真的很有帮助。我能够创建我的csv字符串并用NSLog打印出来。我只是有一个后续问题。这对我来说到底意味着什么“将文件另存为csv并在电子邮件中附加”?我将结束本教程以制作电子邮件附件()。因此,我无法使用该字符串作为附件并设置其MIME类型?还有一个额外的步骤要做?再次感谢您的帮助抱歉错误为“将此文件另存为csv”,实际上是“将此字符串另存为csv文件并在电子邮件中附加”。您可以使用NSString中的“writeToFile:”方法将字符串作为文件写入。明白了。我非常感谢您的帮助他来帮忙!// -- your array object NSArray *jsonArray for (NSDictionary *ajsonObject in jsonArray){ [large_CSV_String appendFormat:@"%@",[ajsonObject objectForKey:[sortedKeys objectAtIndex:0]]]; for(int i = 1; i<[sortedKeys count]; i++){ [large_CSV_String appendFormat:@",%@",[ajsonObject objectForKey:[sortedKeys objectAtIndex:i]]]; } [large_CSV_String appendFormat:@"\n"]; }