4

我一直在使用NSJSONSerialization类将对象的字段转换为 JSON。遗憾的是,仅支持NSString、NSNumber、NSArray、NSDictionary 或 NSNull类型。

由于我的对象有一个额外的字段,即UIImage,我不知道如何处理它。我相信很多人都遇到过这个常见问题,那么解决这个问题的最佳方法是什么?

4

3 回答 3

2

您可以通过 base64 对数据进行编码UIImage,并将其添加到 json 对象中。要从 UIImage 获取数据,您可以使用UIImagePNGRepresentationUIImageJPEGRepresentation

像这样的代码,

NSData *imageData = UIImagePNGRepresentation(image);
NSString *base64encodedStr = base64encode(imageData);
[dict setObject:base64encodedStr forKey:@"myImage"];
//then covert dict to json object.

要恢复UIImage数据,只需解析 json 对象并通过 base64 解码数据。

希望这可以帮到你。

于 2012-06-15T15:25:08.957 回答
1

您可以将图像数据转换为字符串,然后写入该字符串。

NSData *imageData = UIPNGRepresentation(image);
NSString *imageString = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding];

//I don't know how to use NSJSONSerialization
//[NSJSONSerialization serializeString:imageString];
于 2012-06-15T13:57:43.977 回答
0
NSString *base64encodedStr = [imageData base64Encoding];
于 2014-11-04T22:58:47.310 回答