4

オブジェクトのフィールドをJSONに変換するためにNSJSONSerializationクラスを使用しています。残念ながら、NSString、NSNumber、NSArray、NSDictionary、またはNSNullタイプのみがサポートされています。

私のオブジェクトにはUIImageという1つの追加フィールドがあるので、それをどのように処理するかについて迷っています。多くの人がこの一般的な問題に遭遇したと確信していますが、これに取り組むための最良の方法は何ですか?

4

3 に答える 3

2

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でデータをデコードします。

これがお役に立てば幸いです。

于 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 に答える