我一直在使用NSJSONSerialization类将对象的字段转换为 JSON。遗憾的是,仅支持NSString、NSNumber、NSArray、NSDictionary 或 NSNull类型。
由于我的对象有一个额外的字段,即UIImage,我不知道如何处理它。我相信很多人都遇到过这个常见问题,那么解决这个问题的最佳方法是什么?
您可以通过 base64 对数据进行编码UIImage
,并将其添加到 json 对象中。要从 UIImage 获取数据,您可以使用UIImagePNGRepresentation
和UIImageJPEGRepresentation
。
像这样的代码,
NSData *imageData = UIImagePNGRepresentation(image);
NSString *base64encodedStr = base64encode(imageData);
[dict setObject:base64encodedStr forKey:@"myImage"];
//then covert dict to json object.
要恢复UIImage
数据,只需解析 json 对象并通过 base64 解码数据。
希望这可以帮到你。
您可以将图像数据转换为字符串,然后写入该字符串。
NSData *imageData = UIPNGRepresentation(image);
NSString *imageString = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding];
//I don't know how to use NSJSONSerialization
//[NSJSONSerialization serializeString:imageString];
NSString *base64encodedStr = [imageData base64Encoding];