Iphone 解析SBJSON+;语法

Iphone 解析SBJSON+;语法,iphone,objective-c,json,parsing,Iphone,Objective C,Json,Parsing,我会撒谎用SBJSON解析JSON文件,但我在理解上有点问题? 以下是我的JSON结构: 身份证 正文 日期 例如: [{“id”:“1”,“text”:“blabla”,“date”:“1235432241”},{“id”:“2”,“text”:“blabla2”,“date”:“1235432241”}] 下面是我找到的用SBJSON解析JSON文件的代码: - (void)downloadJSONFile:(NSData *)data { SBJSON *jsonPa

我会撒谎用SBJSON解析JSON文件,但我在理解上有点问题? 以下是我的JSON结构:

  • 身份证
  • 正文
  • 日期
例如:

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

下面是我找到的用SBJSON解析JSON文件的代码:


- (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中写什么。。。 有人能给我解释一下吗?
谢谢

您的键是:id、文本和日期。因此,如果您希望解析具有键id的对象,那么在您突出显示的那一行中:


valueForKey:@“id”

根据您提供的json示例,您应该得到一个包含两个
NSDictionary
NSArray
。所以代码应该是

NSArray *nodes = (NSArray *)response;
由于不熟悉SBJSON,响应可能实际上是一个
NSDictionary
。在这种情况下,您可以使用
NSLog(@“%@”,feed)打印字典您应该得到一个类似以下内容的打印输出:

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

其中nameOfKey是您要查找的keyValue。

那么在for循环中,我可以请求文本和日期键?这取决于您希望从JSON响应中解析什么。JSON响应包含这3个键。所以基本上这些就是你的钥匙:id,文本和日期。valueForKey表示获取与您在valueForKey后面的@“”中的引号中提到的键相关的值。因此,如果您希望单独获取文本值,请使用@“text”。REST也是一样,我只想打印每个新条目中的3个值。所以据我所知,我可以把我想要的东西放在钥匙上。对。在循环中再执行两个NSLog语句,并将text和date作为键。在此之前,请确保首先创建了NSArray,类似于节点数组,同样使用其他键