2013-04-20 5 views
0

У меня этот json вернулся из cms, и мне нужно разбить его и использовать разные значения.Parse JSON в Objective C

{"nodes": 
    [{"node": 
     {"created":"14012013165204","lastupdated":"03042013133901","type":"News"} 
    }] 
} 

Я использую рамки JSONKit и вот мой код:

NSString* theURL = [NSString stringWithFormat:@"http://testserver.com/content_lastupdate.json"]; 
    NSError* err = nil; 
    NSURLResponse* response = nil; 
    NSMutableURLRequest* request = [[NSMutableURLRequest alloc] init]; 
    NSURL*URL = [NSURL URLWithString:theURL]; 
    [request setURL:URL]; 
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData]; 
    [request setTimeoutInterval:30]; 
    NSData* data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err]; 

    NSString *output = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    NSDictionary *resultsDictionary = [output objectFromJSONString]; 

    NSLog([NSString stringWithFormat:(@"Response: %@"), output]); 

    NSDictionary *nodes = [resultsDictionary objectForKey:@"nodes"]; 
    NSObject *node = [nodes objectForKey:@"node"]; 

Я не знаю, как получить следующую часть результатов. ключ узлов, но следующий - нет. Любая идея о том, какие основы мне здесь не хватает?

+0

A) Узнайте, как читать JSON - это очень просто. Проверьте JSON.org. B) Используйте NSLog. Он печатает декодированные объекты JSON в синтаксисе типа JSON (хотя вместо '[]') используется '()', поэтому вы можете видеть структуру, когда вы «очищаете» каждый слой. –

ответ

3

«Узлы» - это массив. Попробуйте следующее:

NSArray *nodes = resultsDictionary[@"nodes"]; 
NSDictionary *node = nodes[0]; 
node = node[@"node"]