iPhone App - 将json数组转换为电子邮件附件

时间:2014-07-21 09:22:08

标签: ios json csv email-attachments

我正在制作一个在数据库上运行查询并向用户显示结果的iPhone应用程序。理想情况下,我希望可以选择在显示结果后通过电子邮件发送

我正在使用json数组。从我在线阅读的内容来看,我认为我必须首先将其转换为CSV文件,然后将其附加到电子邮件中。然后,用户应该能够从他或她的电子邮件中下载文件并在Excel上打开它。

我将如何完成这项任务?我是否需要为转换创建一个API,或者这是我可以在xcode上做的事情?我仍然是新的,并希望了解有关该过程的任何细节。

1 个答案:

答案 0 :(得分:0)

  • 您可以在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"];
    
  • 假设下面的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并附在电子邮件中。

    // - 我没有上次写的确切代码,我写的这篇文章留下了一些记忆。希望它会有用。