我有一段很好的工作代码,可以从服务器下载和解析JSON,并返回+JSONRequestOperationWithRequest:success:failure:
AFJSONRequestOperation
的结果。成功(也是失败)方法的一部分将块作为带有id JSON
参数的参数。如果我理解正确 - 这个对象用于表示JSON文件或它的内容。我需要使用MFMailComposeViewController将此JSON文件(或其他所有文本格式的文本表示)发送到电子邮件。所以,有两个问题:
答案 0 :(得分:1)
成功的响应,如果不是JSON,而是JSON的对象表示。最有可能是NSArray
或NSDictionary
。
您需要做的是使用普通的HTTP请求并将该字符串发送到MFMailComposeViewController
或将JSON
对象更改回JSON字符串:
NSError *error = nil;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:JSON options:0 error:&error];
NSString *jsonString = nil;
if (jsonData) {
jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
} else {
NSLog(@"Error creating JSON: %@", error);
}
然后,您可以传递jsonString
中的MFMailComposeViewController
。
答案 1 :(得分:1)
如何从此文件中获取此JSON内容?
您可以从
获取JSON数据响应(在NSJSONSerialization转换为Foundation对象之前)operation.responseString
(作为NSString)或operation.responseData
(作为NSData)。如果你要将它附加到电子邮件中,你会想要后者。
我是否需要注册.json文件类型才有可能使用它发送它 MFMailComposeViewController?
您需要致电[MFMailComposeViewController -addAttachmentData:mimeType:fileName:]
。您可以从operation.response.allHeaderFields
NSDictionary获取mime类型。您也可以使用常用的官方标准application/json
或text/json
。