如何在将使用NSJSONSerialization转换的对象中包含NSData?

时间:2013-08-15 05:08:23

标签: objective-c json

我有一个带有自定义对象的NSMutableArray。里面的对象有一个NSData字段。我想使用JSON格式将它们传输到我的Web服务,但我不知道如何使用NSJSONSerialization,因为它不支持NSData。你能告诉我它是否可能并向我提供一些示例代码或其他可以处理此问题的库?

1 个答案:

答案 0 :(得分:7)

没有。正如NSJSONSerialization文档明确指出的那样:

  

可以转换为JSON的对象必须具有以下属性:

     
      
  • 顶级对象为NSArrayNSDictionary
  •   
  • 所有对象都是NSStringNSNumberNSArrayNSDictionaryNSNull的实例。
  •   
  • 所有词典键都是NSString
  • 的实例   
  • 数字不是NaN或无穷大。
  •   

NSData显然没有这些属性。

您可能想要做的就是将其编码为Base64字符串或您认为可接受的其他形式(除了Base64之外还有很多其他选项,但它会立即浮现在脑海中)。您也可以通过将其转换为使用适当转义码等的字符串(取决于数据)来实现,但您应该确保不会导致任何编码问题。

无论如何,答案是否定的。找到一种方法将其编码为NSStringNSJSONSerialization可以使用的其他内容。