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

Mar*_*kov -1 json objective-c

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

nil*_*nil 7

不.正如NSJSONSerialization文件明确指出:

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

  • 顶级对象是NSArrayNSDictionary.
  • 所有的对象都是实例NSString,NSNumber,NSArray,NSDictionary,或NSNull.
  • 所有字典键都是实例NSString.
  • 数字不是NaN或无穷大.

NSData 显然没有那些属性.

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

无论如何,答案是否定的.找到一种方法将其编码为NSString或其他NSJSONSerialization可以使用的东西.