2013-09-05 43 views
0

我從服務器獲取了一些JSON值,我想解析JSON數據並用相應的值對單個KEY進行過濾。 的JSON值稍微看起來像在NSArray中過濾和存儲JSON值

[{"id":8,"name":"General","visible":1,"summary":"","summaryformat":1,"modules":""},{"id":9,"name":"section01","visible":0,"summary":"","summaryformat":1,"modules":""}] 
在上述像JSON值

我想與各自的值被劃分到鍵「可見」

如果可見= 0,我想存儲它們,並且如果可見= 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; 
}]; 

我盲目地打字,所以我不知道這是否是語法正確

的一點是,你首先得實例化NSArray通過NSJSONSerialization類。 然後,您可以用NSPredicate,只是檢查包含在NSArray

NSDictionaryvisible屬性過濾它你也許可以做到這一點也與正常NSPredicate,而不是塊,但我覺得塊簡單:)

+0

它顯示錯誤爲'INT(^)(__ strong id,NSDictionary * __ strong)'的類型爲'BOOL(^)(__ strong id,NSDictionary * __ strong)'的參數不兼容的塊指針類型' –

+0

您是對的,該塊必須返回一個BOOL。只需將其添加到代碼中,它應該可以工作 – Vik

+0

我編輯了我的答案 – Vik