オブジェクトのフィールドをJSONに変換するためにNSJSONSerializationクラスを使用しています。残念ながら、NSString、NSNumber、NSArray、NSDictionary、またはNSNullタイプのみがサポートされています。
私のオブジェクトにはUIImageという1つの追加フィールドがあるので、それをどのように処理するかについて迷っています。多くの人がこの一般的な問題に遭遇したと確信していますが、これに取り組むための最良の方法は何ですか?
UIImage
データをbase64でエンコードし、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];