2014-12-12 1 views
0

나는 엑스 코드 6 JSON을 구문 분석을 시도하고 내 코드는 다음과 같습니다 엑스 코드는

NSData *jsonClusterHealth = [NSData dataWithContentsOfURL: 
         [NSURL URLWithString:@"http://XXX.XXX.XXX.XXX:XXXX/_cluster/health?pretty=true"]]; 

id jsonCHealth = [NSJSONSerialization JSONObjectWithData: 
        jsonClusterHealth options:NSJSONReadingMutableContainers error:nil]; 
ClusterStatusLabel.text = [jsonCHealth objectForKey:@"status"]; 
//NumberOfNodesLabel.text = [jsonCHealth objectForKey:@"number_of_nodes"]; 
//ActiveShardsLabel.text = [jsonCHealth objectForKey:@"active_shards"]; 

나는 마지막 두 줄의 주석을 해제 할 때까지 그래서 모든 것이 잘 작동, 그것은 다음과 같이 응용 프로그램을 충돌

오류 :

-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000000013 2014-12-12 11:00:35.447 FnHAdmin[22139:1077781] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFNumber length]: unrecognized selector sent to instance 0xb000000000000013' 

나는 이유는 ... JSON의 객체 키에 밑줄이다 그래서 밑줄을 포함하는 JSON 키 엑스 코드에서 문제가 무엇인가 알아 낸 것처럼 ??? 주요 문제는 그것을 해결하는 방법입니다 (JSON에서 언더 스코어를 제거 할 수 없기 때문에 솔루션이 Xcode에 있어야합니다).

+0

'jsonCHealth'는'@ "number_of_nodes"와'@ "active_shards"'에 대한 객체를 가지고 있습니까? – Akhilrajtr

+1

JSON 코드를 구문 분석하여 –

+0

@Akhilrajtr이 (가) 있는지 확인하십시오! –

답변

1

크래시 로그에서 키의 객체처럼 보입니다. @"number_of_nodes"@"active_shards"은 NSNumber입니다. 유형. 시도,

NumberOfNodesLabel.text = [NSString stringWithFormat:@"%@", [jsonCHealth objectForKey:@"number_of_nodes"]]; 
ActiveShardsLabel.text = [NSString stringWithFormat:@"%@", [jsonCHealth objectForKey:@"active_shards"]]; 
+0

도움을 주셔서 감사합니다 @Akhilrajtr! –

+0

@AndreyPopov 당신은 오신 것을 환영합니다. – Akhilrajtr

+0

다른 질문을 할 수 있습니까? "인덱스": 다음은 JSON 아이오와 { "fnh_mainbeta": { "인덱스": { "primary_size_in_bytes": 355,671,123, "SIZE_IN_BYTES": 355,671,123 }, 어떻게 primary_size_in_bytes에 도착? –