我一直在使用 NSJSONSerialization 类将我的对象的字段转换为JSON。遗憾的是,只支持 NSString,NSNumber,NSArray,NSDictionary或NSNull 类型。
由于我的对象有一个额外的字段,即 UIImage ,我对如何处理它感到茫然。我相信很多人都遇到过这个常见问题,那么最好的方法是什么呢?
答案 0 :(得分:2)
您可以通过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解码数据。
希望这可以帮到你。
答案 1 :(得分:1)
您可以将图像数据转换为字符串,然后编写该字符串。
NSData *imageData = UIPNGRepresentation(image);
NSString *imageString = [[NSString alloc] initWithData:imageData encoding:NSUTF8StringEncoding];
//I don't know how to use NSJSONSerialization
//[NSJSONSerialization serializeString:imageString];
答案 2 :(得分:0)
NSString *base64encodedStr = [imageData base64Encoding];