2012-11-07 94 views
0
for (NSArray *values in [serializedJSON allValues]) 

有時,serializedJSON中的值將是數組,有時它們將是NSDictionaries。我想歧視其中的一個,所以我沒有像現在這樣得到任何錯誤。所以我只希望在這種情況下返回的值是NSArrays,而在第二種情況下,我只希望它們是NSDictionaries。在遍歷NSDictionary的同時處理不同的對象類型

感謝先進!

如果您需要更多的信息讓我知道

+1

[isKindOfClass](http://developer.apple.com/library /ios/documentation/Cocoa/Reference/Foundation/Protocols/NSObject_Protocol/Reference/NSObject.html#//apple_ref/occ/intfm/NSObject/isKindOfClass :) –

+0

你無法控制JSON映射的內容,你只能做通過測試返回的內容來控制你對它的反應。 –

回答

4

的標準,來處理JSON通用的方法大致如下:

NSObject* jsonResult = [serializedJSON allValues]; 
if ([jsonResult isKindOfClass:[NSArray class]]) { 
    <handle NSArray> 
} 
else if ([jsonResult isKindOfClass:[NSDictionary class]]) { 
    <handle NSDictionary> 
} 
else if ([jsonResult isKindOfClass:[NSNumber class]]) { 
    <handle NSNumber> 
} 
else if ([jsonResult isKindOfClass:[NSString class]]) { 
    <handle NSString> 
} 
else if (jsonResult == [NSNull null]) { 
    <handle null> 
} 
+0

謝謝!你的救星!我知道必須有某種類型的方法來檢查課程,但是當我搜索時我找不到任何方法。再次感謝你! –

+0

@MichaelKing - 請記住,JSON是遞歸的 - 每個字典和數組包含可能以相同方式進一步解析的元素。 –

相關問題