2013-01-22 1 views
2

를 사용하여 값으로 사용자 지정 개체를 직렬화 :그래서 내 JSON 요청과 같이 보일 것입니다 NSJSONSerialization

{ 
    "MyDictionary" : ["some values"], 
    "RegularValue" : "regularValue", 
} 

를 그래서 나는 현재 수행 한 것은 :

NSDictionary *myDict = @{@"Blah" : @"1", @"Yadayada" : @"2"}; 
NSDictionary *jsonDict = @{"MyDictionary" : myDict, "RegularValue" : "someValue"}; 
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:jsonDict options:kNilOptions error:&error]; 

그래서이 잘 작동합니다. 문제는 MyDictionary를 수동으로 생성하는 대신 NSObject의 사용자 정의 서브 클래 싱을 사용하여 JSON에 직렬화하는 것입니다. 기본적으로 수동으로 내 사용자 지정 NSObject의 속성에 대한 NSDictionary를 만들고이를 NSJSONSerialization 메서드에 넣어야합니다. 그러나 이것을 수행하는 더 좋은 방법이 있는지 궁금합니다. 감사.

답변

-3

이 작업을 수행하려면 특성 및 기타 항목이 포함 된 사용자 지정 NSObject 클래스를 만들어야하며 Objective-C에서 toString이 작동하는 것과 비슷한 개체를 직렬화하는 사용자 지정 메서드가 있어야합니다.

- (NSString *)description 

귀하의 메서드에 대한 다음 직렬화 된 개체를 반환하십시오. 당신이 그들을 직렬화 어떻게 든 다음 현재 개체의 모든 속성을 읽을 수있는이 방법에

,이 스레드는 어쩌면이 특정 객체

Get an object properties list in Objective-C

0

의 모든 속성을 읽을 수있는 좋은 샘플 코드를 제공합니다 도와 드릴 수 있습니다 JLCustomClassDisassembler.

사용자 지정 개체를 반복하여 속성을 가져옵니다. 이것은 당신에게 사전/배열을 줄 것이며 sbjson/jsonkit을 사용하거나 json 문자열을 만드는 것을 선호합니다.