我正在制作一个在数据库上运行查询并向用户显示结果的iPhone应用程序。理想情况下,我希望可以选择在显示结果后通过电子邮件发送
我正在使用json数组。从我在线阅读的内容来看,我认为我必须首先将其转换为CSV文件,然后将其附加到电子邮件中。然后,用户应该能够从他或她的电子邮件中下载文件并在Excel上打开它。
我将如何完成这项任务?我是否需要为转换创建一个API,或者这是我可以在xcode上做的事情?我仍然是新的,并希望了解有关该过程的任何细节。
答案 0 :(得分:0)
如果你的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"];
假设下面的jsonArray包含具有上述键的nsdictionary对象
// -- 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"];
}
// - 最后你会得到一个CSV
字符串// - 您可以NSLog该值并查看
// - 将此字符串另存为csv并附在电子邮件中。
// - 我没有上次写的确切代码,我写的这篇文章留下了一些记忆。希望它会有用。