2011-09-29 8 views
0

에 구문 분석 JSON 키트 나는 다운로드 및 아이폰 OS

{ 
    "transactions": [ 
    { 
    "ID": "350", 
    "description": "Macbook Pro 17 inch", 
    "price": "2811.83" 
    }, 
    { 
    "ID": "351", 
    "description": "Macbook - white", 
    "price": "1720.10" 
    }, 
    { 
    "ID": "352", 
    "description": "iPad 2", 
    "price": "650.00" 
    }, 
    { 
    "ID": "353", 
    "description": "Macbook Pro 17 inch", 
    "price": "3233.98" 
    }, 
    { 
    "ID": "354", 
    "description": "Macbook Pro 15 inch", 
    "price": "2100.55" 
    }, 
    { 
    "ID": "355", 
    "description": "Macbook Air", 
    "price": "899.99" 
    }, 
    { 
    "ID": "356", 
    "description": "Mac Pro", 
    "price": "3400.77" 
    } 
    ] 
} 

아이폰 OS

에있는 tableview에 웹 서버에서 나는 설명과 가격은이에서 원하는 유일한 일을이 구문 분석을 시도하고있다. 나는 각 품목의 가격을 합산하고 합계를 얻어야한다. 각 거래 이름은 NSArray에 저장하고 UITableView에 표시해야합니다.

어떤 도움이 필요합니까? JSONkit은 나에게 SBJSON 파서를주지 않는다.

+0

당신은 실제로 아무것도 시도? 몇 가지 코드를 알려 주시면 문제를 발견 할 수 있습니다. –

답변

4

나는 그 단순성과 속도 때문에 JSONKit을 정말 좋아했습니다. 당신은 그것이 무엇을 반환 하는지를 깨달아야합니다. 그것은 객체로서 최상위 레벨 구조입니다. 그래서 그것에 대해 생각해야합니다. 그것은 NSDictionary (그래서 당신이 그것을 형 변환 할 수 있습니다), 그리고 그것은 하나의 열쇠 "거래"를해야합니다.

이 키는 각각 ID, 설명 및 가격 키가있는 NSDictionary 개체의 NSArray를 반환합니다. (itemListData은 JSON의 예를 들어 URL에서 가져온 데이터입니다)이 같은

그래서 뭔가 :

JSONDecoder *decoder = [JSONDecoder decoderWithParseOptions:JKParseOptionStrict]; 
NSData *immutableItemList = [itemListData copy]; 
NSArray *returnedData = (NSArray *) [[decoder objectWithData:immutableItemList] objectForKey:@"transactions"]; 

그래서, 우리는 원시 JSON 데이터를했다 디코더를 인스턴스화 후 사전에이를 디코딩 - 사전에 1 개체를 가져 왔습니다 (이 경우 배열로 표시됩니다). 초보자에게 그렇게 나쁘지 않은가?

(나는 추가해야합니다 -. 이유를 내가는을 NSData의 불변의 복사본을 만들어이 코드는 비동기 다운로드에 즉, connectionDidFinishLoading 방법에 트리거)

1

어이 사람. 그래서 내가 과거에 한 일은 페이스 북에 가서 개발자 SDK를 다운로드하는 것이다. 그 sdk 훌륭한 JSON 구문 분석 도구입니다. 당신은 당신이

#import "JSON.h" 

을 헤더하고 해당 문자열을 얻을 때 다음

NSDictionary *data = [my_data_string JSONValue]; 
NSArray *transactions = [data objectForKey:@"Transactions"]; 

그 일을해야 말은 여기 http://developers.facebook.com/docs/reference/iossdk/ 그럼 당신은 단순히 프로젝트에와에 그 추가 찾을 수 있습니다 :