2012-02-06 62 views
1

我将不同的JSON对象转换为结构化对象,并希望遍历所有节点以分层处理每个节点。 JSON框架支持转换为NSDictionary,我认为这是非结构化的。我想递归地遍历每个项目,并对结构给予尊重。这将如何与字典或通用NSOBject?以递归方式遍历Objective-C中的对象

例子:

- (void) processParsedObject:(NSDictionary *)obj 
{ 
    if (atTheEndOfTheTail) { 
     NSLog(@"Object description: %@\n\n", obj.description); 

    } 
    for (id object in obj) { 
     [self processParsedObject:object]; 
    } 
} 

更新:

我问的问题更清楚这里(含答案):

Recursively traverse NSDictionary of unknown structure

回答

2

可以枚举的所有键NSDictionary使用:

NSEnumerator* keyEnum = [myDictionary keyEnumerator]; 
NSObject* nextKey; 
while ((nextKey = [keyEnum nextObject]) != nil) 
{ 
    NSObject* nextValue = [myDictionary objectForKey:nextKey]; 
    //... do something with the object and/or key ... 
} 
+1

或者只是使用快速枚举('for ... in') – bummzack 2012-02-06 23:05:20

+0

好点。你也可以通过递归方式获得子对象和子子对象等。 – user1118321 2012-02-06 23:14:09

+0

这就是我所想的。你能告诉我一些示例语法吗?我以我的例子屠杀了它。 – 2012-02-06 23:15:28