2011년 4월 22일 금요일

[iOS] SBJson - JSON Framework

SBJson 은 Objective-C로 만들어진 Cocoa용 JSON Framework 이다. Mac OS X 용 혹은 iOS 용으로 사용할 수 있다.

http://stig.github.com/json-framework/

공식사이트에서 다운로드 받거나 github의 소스를 clone 해서 받을 수 있다.

압축을 풀어보면 일반적인 XcodeProject 형식의 내용들이 나타난다. 정확하게 어떤 식으로 사용해야 할 지는 잘 모르겠지만 (...) 내 경우 개발중이던 프로젝트의 Classes 디렉토리에 다음 소스 파일들을 그냥 통째로 복사해 넣었다.
JSON.h
NSObject+JSON.h
NSObject+JSON.m
SBJsonParser.h
SBJsonParser.m
SBJsonStreamParser.h
SBJsonStreamParser.m
SBJsonStreamParserAdapter.h
SBJsonStreamParserAdapter.m
SBJsonStreamParserState.h
SBJsonStreamParserState.m
SBJsonStreamWriter.h
SBJsonStreamWriter.m
SBJsonStreamWriterState.h
SBJsonStreamWriterState.m
SBJsonTokeniser.h
SBJsonTokeniser.m
SBJsonWriter.h
SBJsonWriter.m
SBJson의 Classes 상에 들어있는 소스 전부라고 봐도 된다. -_-;;

사용 방법은 굉장히 단순하였다.

예제는 JSON을 문자열로 받아서 dictionary 형태로 파싱하는 것.
#import "JSON.h"
import 하는걸 빼 먹으면 안되지 ~_~;;
NSDictionary* dict = [[[SBJsonParser alloc] init] objectWithString:jsonString];
objectWithString은 id 형태의 인스턴스 포인터를 반환한다. 따라서 JSON의 구조에 따라 NSArray * 형식의 데이터가 올 수도 있다. 이 부분은 개발자가 알아서 해야 할 부분이다.

인코딩의 경우도 비슷하다.
NSString* str = [[[SBJsonWriter alloc] init] stringWithObject:dict];
동일하게 NSDictionary 형식의 데이터를 인코더로 집어넣어서 문자열로 JSON 데이터를 받았다.

참고) 옛날 글: Three20+JSON 사용하기.

댓글 없음 :