2010-06-14 2 views
0

에 의해 반환 변수 유형 :아이폰 : 나는 아이폰 프로그래밍에 아주 새로운 그리고 난 다음 물건을 수행 할 yajl

  1. 얻을를 JSON REST 웹 서버
  2. 의 데이터 YAJL를 이용하여 수신 데이터를 구문 분석

그래서, 1 번째 항목은 괜찮습니다, 나는 espected 3 거의 괜찮로 실행 ASIHttpRequest을 사용하여 코어 플롯을 사용하여 해당 데이터를 그래프 그리기 (나는 아직도 배워야 할 방법을 조정 코어 음모에) .

문제는 두 번째 항목에 관한 것입니다.

// Get server data 
response_data = [request responseData]; 

// Parse JSON received 
self.arrayFromData = [response_data yajl_JSON]; 
NSLog(@"Array from data: %@", self.arrayFromData); 

: 나는 빠른 파서를 것으로 보인다 YAJL를 사용, 왜 그것을 시도 : 여기

을주지는 서버에서 데이터를 가져 와서 파싱 코드의 일부이다

2010-06-14 17 : 56 : 35.375 TEST_APP [3733 : 207]에서 데이터 어레이로서

{ 
data =  (
      { 
     val = 1317; 
     date = "2010-06-10T15:50:01+02:00"; 
    }, 
      { 
     val = 1573; 
     date = "2010-06-10T16:20:01+02:00"; 
    }, 
     ........ 
    { 
     val = 840; 
     date = "2010-06-11T14:50:01+02:00"; 
    }, 
      { 
     val = 1265; 
     date = "2010-06-11T15:20:01+02:00"; 
    } 
); 
from = "2010-06-10T15:50:01+02:00"; 
to = "2010-06-11T15:20:01+02:00";  
max = "2590";  
} 

따른 분석은 매우 잘 작동 사실은 NSLog 출력 같은 인 th yajl-objc 설명 http://github.com/gabriel/yajl-objc, 파싱 NSArray를 반환합니다 ... 것은 ... NSArray보다 NSDictionary처럼 보이는 나를 위해 모든 값을 얻는 방법을 모르겠다 ...

도와 주시겠습니까?

고마워, 뤽

EDIT1 : (!)이 객체가 NSCFDictionary, 나는 여전히 내가 objectFromKey 방법을 시도 할 때, 그것으로부터 값을 얻을 수 없습니다 수 있어요 (가 해결해야 할 사실입니다 발생 사전에, 안돼?) 그것은 실패합니다.

답변

1

NSDictionary을 반환합니다. NSCFDictionary은 개인 하위 클래스이며이 토론에 중요하지 않습니다. 그래서 당신은 같은 물건을 검색 할 것 같습니다

objectForKey 방법이 작동하지 않는 이유 데이브, 난 그냥 알아 낸 것
NSDictionary * responseDictionary = ...; 
NSArray * dataArray = [responseDictionary objectForKey:@"data"]; 
for (NSDictionary * dataPair in dataArray) { 
    NSLog(@"val: %@, date: %@", [dataPair objectForKey:@"val"], [dataPair objectForKey:@"date"]); 
} 
+0

감사합니다 (I 올바른 키를 사용하지 않은 .... 나를 바보). 문제는 NSArray가 (문서에 지정된대로) 있어야 할 때 NSDictionary 인 이유는 아직도 이해할 수 없습니다. 고마워요. – Luc