특성이있는 JSON 개체를 구문 분석하는 방법에 대해 고민하고 있습니다. 나는 JSON 객체를 파싱하고 깔끔한 NSDictionary
을 얻을 수 있지만, 나는 @"xxx"
텍스트로 속성을 얻는다. 이것은 바람직하지 않다.NSJSONSerialization을 사용하여 JSON 특성을 구문 분석
나는 그것이 나와 연관이 있다고 생각하지만, options:kNilOptions
이 무엇인지 알아낼 수 없습니다.
-(void)getSportsOnCompletion:(void (^)(NSArray *sports))completionBlock onError:(MKNKErrorBlock)errorBlock
{
[self addCompletionHandler:^(MKNetworkOperation *completedOperation) {
DLog(@"%@: %@", [completedOperation isCachedResponse] ? @"Cache" : @"Response", [completedOperation responseString]);
NSError *err = nil;
id json = [NSJSONSerialization JSONObjectWithData:[completedOperation responseData]
options:kNilOptions
error:&err];
if(err)
{
errorBlock(err);
return;
}
DLog(@"JSON: \n%@", json);
NSArray *array = [(NSDictionary *)json objectForKey:@"sport"];
NSMutableArray *sports = [NSMutableArray arrayWithCapacity:array.count];
for(NSDictionary *item in array) {
[sports addObject:[Sport instanceFromDictionary:item]];
}
completionBlock([NSArray arrayWithArray:sports]);
} errorHandler:^(MKNetworkOperation *completedOperation, NSError *error) {
errorBlock(error);
}];
[ApplicationDelegate.networkEngine enqueueOperation:self forceReload:YES];
}
것은 내가 결과로 좀하고 싶습니다 무엇 : 이것은 내 코드입니다
2013-08-26 22:46:44.461 OddsApp[21971:70b] __50-[GetSportsService getSportsOnCompletion:onError:]_block_invoke [Line 43] JSON:
{
sport = (
{
"@description" = Fotboll;
"@id" = 1;
"@name" = SOCCER;
},
{
"@description" = Ishockey;
"@id" = 2;
"@name" = HOCKEY;
}
);
}
: 이것은 내 결과 사전입니다
{
"sport": [
{
"@description": "Fotboll",
"@id": "1",
"@name": "SOCCER"
},
{
"@description": "Ishockey",
"@id": "2",
"@name": "HOCKEY"
}
]
}
:
이
는 JSON 객체입니다 사전 :{
sport = (
{
"description" = Fotboll;
"id" = 1;
"name" = SOCCER;
},
{
"description" = Ishockey;
"id" = 2;
"name" = HOCKEY;
}
);
}
나는 물론 의미 "정말 감사하겠습니다 어떤 도움이 "내 현상금 메시지에. –
현재와 원하는 put 사이의 유일한 차이점은 키 시작 부분에'@'입니다. 맞습니까? 또는 나는 무엇인가 놓치고 있냐? –
JSON 구문 분석기가 "@"기호를 UTF-8로 인코딩 된 다른 문자와 다르게 처리해야하는 이유는 무엇입니까? 속성은 JSON에 대한 유효한 확장이 아니므로 직접 키를 구문 분석하거나 자체 파서를 작성하기 위해 문자열 조작을 직접 수행해야합니다. – CodaFi