2010-11-25 86 views
0

我会撒谎解析与SBJSON的JSON文件,但我有一点理解的问题? 这里是我的JSON结构:解析SBJSON +语法

  • ID
  • 文本
  • 日期

所以对于为例:

[{ “ID”: “1”, “文”: “blabla”,“date”:“1235432241”},{“id”:“2”,“text”:“blabla2”,“date”:“1235432241”}]

这里是我发现的代码解析J SON文件白衣SBJSON:


- (void)downloadJSONFile:(NSData *)data 
{ 
    SBJSON *jsonParser = [[[SBJSON alloc] init] autorelease]; 
    NSString *jsonString = [[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding] autorelease]; 

    id response = [jsonParser objectWithString:jsonString error:NULL]; 

    NSDictionary *feed = (NSDictionary *)response; 
    NSArray *nodes = (NSArray *)[feed valueForKey:@"keyValue"]; // here's I don't know what to put 

    for (int i = 0; i nodes.count; i++) { 

     NSDictionary *node = (NSDictionary *)[nodes objectAtIndex:i]; 
     NSLog(@"id = %@",[node objectForKey:@"id"]); 
    } 
} 

我不知道在我的节点阵列的valueforKey写什么...... 有人能向我解释? 谢谢!

回答

1

您的钥匙是:身份证,文本和日期。所以,如果你想用钥匙ID解析的对象,然后在该行,你已经强调这将是:

valueForKey:@“ID”

+0

那么在我的for循环中,我可以要求文本和日期键? – Pierre 2010-11-25 11:59:47

0

您应该以您提供的JSON样本的外观得到一个NSArray包含两个NSDictionary。所以代码应该是

NSArray *nodes = (NSArray *)response; 

不熟悉SBJSON,它可能实际上是一个NSDictionary。在这种情况下,你可以打印使用NSLog(@"%@", feed);词典中,你应该得到一个打印出来,看起来像:

{ 
    nameOfKey = (
       { 
       "id" = 1; 
       "text" = "blablabla" 
... 

凡nameOfKey将是您正在寻找的keyValue。