2013-05-26 2 views
0

현재 iPhone 응용 프로그램 내에 구문 분석해야하는 JSON 객체가 들어있는 URL이 있습니다.iOS 응용 프로그램 용 JSON 객체 구문 분석

JSON 개체를 가져올 수 있으며 개체를 NSString으로 변환 할 수 있습니다. 이제 문제는 개체/NSString 개체를 구문 분석합니다.

현재 SBJSON을 사용하고 있습니다.

SBJSON의 프레임 워크를 사용하여 JSON 객체의 주요 요소를 반복하는 방법은 무엇입니까?

{ 
    "status":"SUCCESS", 
    "fields":[ 
     { 
     "type":"instant", 
     "field":"GenerationPower", 
     "label":"now", 

json으로 개체는 이러한 키와 핵심 요소보다 훨씬 큰하지만,이 문제가 해결되면, 난 내가 참조를해야하기 때문에 JSON 객체의 나머지 부분은 쉬운 것입니다 확신합니다.

감사합니다. Stackoverflow!

편집 : 다음은 문제를 설명하는 코드입니다.

+ (NSString *) pullingInfo 
{ 
    NSURL *solarWebURL = [NSURL URLWithString:myurl]; 

    if (solarWebURL) 
    { 
     NSLog(@"Calling: %@", solarWebURL); 

     NSData *jsonData = [NSData dataWithContentsOfURL:solarWebURL]; 

     NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; 

     return jsonString; 
    } 

    NSString* errorMessage = @"Error reading URL"; 
    return errorMessage; 
} 

+ (NSDictionary *) jsonDictionaryObject 
{ 
    NSDictionary * jsonDictionary = [[NSDictionary alloc] init]; 

    NSString * monroeString = [MonroeParser pullingInfo]; 


    return jsonDictionary; 
} 

그래서 이전에 말씀 드렸듯이 JSON 개체를 NSString 개체 "jsonString"에 이미로드했습니다. 이제 문자열을 파싱하기 시작합니다.

구문 분석을 위해 JSON의 프레임 워크를 사용할 필요조차 없다고 생각합니다. Apple에서 제공 한 NSString 규칙을 사용하여 NSString을 구문 분석 할 수 있습니다.

아이디어가 있으십니까? 하지만 아마도 이것은 효율적이지 않습니다 ....

+1

(NSString * key in parsedDictionary) {}' –

+2

아직 작성하지 않았다면 json.org로 가서 JSON 구문을 배우는 데 5-10 분을 소비해야합니다. 그러면 복잡한 JSON 객체를 (적절한 파서로 Cocoa 객체로 파싱 한 후) "분해"하는 방법을 이해하게 될 것입니다. –

답변

1

사인 SBJSON을 사용하고 있습니다. NSString을 NSString으로 변환하는 이유는 무엇입니까? SBJSONParser에 대해 -objectWithData 메서드를 사용하면 NSData를 NSDictionary로 직접 읽을 수 있습니다.

http://sbjson.org/api/3.2/Classes/SBJsonParser.html#//api/name/objectWithData

:

하자 pullingInfo는 ID를 반환합니다. 그리고 함수를 호출 할 때 ID가 NSDictionary 또는 NSArray 유형인지 확인한 다음 적절히 구문 분석합니다.