2014-06-15 7 views
0

빠른 질문 : 어떻게은 구문 분석하는 NSString SBJSON

나는 문자열이 UTF-8이 웹 REST API의 JSON 문자열을 인코딩 된 SBJSON4 를 사용하여있는 NSString을 구문 분석합니다. 파싱 된 데이터와 함께 NSDIctionary가 필요합니다. 이 문자열은 완전한 JSON 문서로 보장됩니다.

@interface NSOperationParseJSON() 

@property (weak, nonatomic) id<JSONParseDelegate> delegate; 
@property (strong, nonatomic) NSString *stringToParse; 
@property (strong, nonatomic) SBJson4Parser *jsonParser; 

@end 

@implementation NSOperationParseJSON 

- (instancetype)initWithJSONString:(NSString *)jsonString andDelegate:(id<JSONParseDelegate>)delegate 
{ 
    self = [super init]; 
    if (self) { 
     _delegate = delegate; 
     _stringToParse = jsonString; 
     _jsonParser = [[SBJson4Parser alloc] init]; 
    } 
    return self; 
} 

#pragma mark - OVERRIDEN 

- (void)main 
{ 
    @autoreleasepool { 
     if (self.isCancelled) { 
      return; 
     } 

     SBJson4ParserStatus responseCode = [self.jsonParser parse:[self.stringToParse dataUsingEncoding:NSUTF8StringEncoding]]; 

     if (responseCode == SBJson4ParserComplete) { 

     } else if (SBJson4ParserError) { 

     } 

    } 
} 

어디에서 응답을 받습니까?

+0

:

당신은 아직도 그것을 탐구하려는 경우

, 여기에 두 가지 예? –

+0

표준이 아닌 json입니다. "@data"와 같은 키가 있습니다. NSJSON은 이런 json을 처리 할 수 ​​없습니다. – user1028028

답변

0

설명서를 읽어야합니다. 버전 4의 인터페이스는 이전 버전과 완전히 다릅니다. 완성되지 않은 JSON 스트림으로 작업하는 것과 같이 NSJSONSerialisation이 수행하지 않는 일부 작업 모드를 지원하지만 비표준 JSON을 지원하지 않습니다 (내가 놓친 버그가없는 한).

https://github.com/stig/ChunkedDelivery 또는 NSJSON를 사용하지 않는 이유 https://github.com/stig/DisplayPretty