2012-06-15 4 views
4

내 개체의 필드를 JSON으로 변환하기 위해 NSJSONSerialization 클래스를 사용했습니다. 슬프게도 NSString, NSNumber, NSArray, NSDictionary 또는 NSNull 유형 만 지원됩니다.iPhone에서 UIImage를 JSON 파일로 변환하는 방법은 무엇입니까?

내 개체에는 UIImage이라는 한 가지 추가 필드가 있으므로 어떻게 처리해야합니까? 많은 사람들이이 공통적 인 문제에 직면했을 것이라고 확신합니다. 그래서이 문제에 접근하는 가장 좋은 방법은 무엇입니까?

+0

아마도 당신이 원하는 것을 우리에게 말할 수 있습니다. 'JSON은 이미지를위한 최고의 최상의 형식이 아닙니다. – basvk

+0

많은 필드가있는 NSManagedObject가 있습니다. 그 데이터를 웹 서버에 보내서 json 파일에 압축하여 서버로 보냅니다. 또한 서버는 JSON 형식으로 일부 데이터를 다시 보낼 수 있습니다. – MegaManX

답변

2

UIImage 데이터를 base64로 인코딩하여 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로하여 데이터를 디코딩합니다.

희망이 도움이 될 수 있습니다.

+1

base64encode 함수가 없으므로 직접 작성 했습니까? – MegaManX

+0

@MegaManX 예, 직접 작성한 Base64 함수가 필요합니다. – looyao

+1

아, 그게 가장 힘든 부분 :-(솔루션의 90 %입니다. – MegaManX

1

이미지 데이터를 문자열로 변환 한 다음 해당 문자열을 쓸 수 있습니다.

0
NSString *base64encodedStr = [imageData base64Encoding]; 
관련 문제