2013-09-05 5 views
0

서버에서 JSON 값을 가져오고 있습니다. JSON 데이터를 파싱하고 단일 KEY 값을 사용하여 필터링하려고합니다. I 0 =NSArray에서 JSON 값을 필터링하고 저장하십시오.

경우 보이는 키 "볼"을 각각 가진 값을 분할 할 상기 추천 JSON 값

[{"id":8,"name":"General","visible":1,"summary":"","summaryformat":1,"modules":""},{"id":9,"name":"section01","visible":0,"summary":"","summaryformat":1,"modules":""}] 

같이 JSON 값이 약간 보인다 내가 보관하고 싶은 경우 visible = 1, 나는 배열에 값을 저장하지 말아야한다.

에게 도움이 필요합니다.

답변

1
NSMutableArray *jsonArray = [[NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e] mutableCopy]; 

jsonArray = [jsonArray filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id evaluatedObject, NSDictionary *bindings) { 
    return [evaluatedObject[@"visible"] intValue] == 1; 
}]; 

가 나는 맹목적이

요점은 먼저이 NSArrayNSJSONSerialization을 통해 클래스를 인스턴스화해야한다는 것입니다 문법적으로 맞는지 그래서 나도 몰라, 입력했습니다. 그런 다음 당신은 아마도과 정상 대신 블록의 NSPredicate하지만, 내가 찾을 것을 할 수있는 단지 NSArray

에 포함 된 NSDictionaryvisible 속성을 확인하는 NSPredicate으로 필터링 할 수 있습니다

: 블록 간단
+0

'BOOL (^) (__ strong id, NSDictionary * __ strong)'유형의 매개 변수에 'int (^) (__ strong id, NSDictionary * __ strong)'을 전송하는 호환되지 않는 블록 포인터 유형으로 오류가 표시됩니다. –

+0

맞아, 블록은 BOOL을 반환해야합니다. 그냥 그 코드에 추가하고 작동합니다 – Vik

+0

나는 내 대답을 편집 – Vik

관련 문제