-1

我有一段很好的工作代码,可以从服务器下载和解析 JSON 并返回结果+JSONRequestOperationWithRequest:success:failure:AFJSONRequestOperation方法的成功(以及失败)部分将块作为参数,其中包含id JSON参数。如果我理解正确 - 此对象用于表示 JSON 文件或其内容。我需要有可能使用 MFMailComposeViewController 将此 JSON 文件(或者它是其他所有文本格式的文本表示)发送到电子邮件。所以,两个问题:

  • 如何从该文件中获取此 JSON 内容?
  • 我是否需要注册 .json 文件类型才能使用 MFMailComposeViewController 发送它?
4

2 回答 2

1

如果不是 JSON 而是 JSON 的对象表示,则成功中的响应。很可能是NSArrayNSDictionary

您需要做的是使用正常的 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.

于 2013-07-12T14:19:26.063 回答
1

如何从该文件中获取此 JSON 内容?

您可以从

  • operation.responseString(作为 NSString),或
  • operation.responseData(作为 NSData)。

如果您要将其附加到电子邮件中,您将需要后者。

我是否需要注册 .json 文件类型才能使用 MFMailComposeViewController 发送它?

你需要打电话[MFMailComposeViewController -addAttachmentData:mimeType:fileName:]。您可以从operation.response.allHeaderFieldsNSDictionary 获取 mime 类型。您也可以使用官方标准,application/jsontext/json,这也是常用的。

于 2013-07-12T14:42:43.973 回答