Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 使用JSONKit解码JSON会出现错误_Iphone_Json - Fatal编程技术网

Iphone 使用JSONKit解码JSON会出现错误

Iphone 使用JSONKit解码JSON会出现错误,iphone,json,Iphone,Json,我有以下验证为有效JSON的JSON {"flights":[{"flight":{"flightno":"BAW699","timestamp":"2011-03-22 07:06:02","route":"LOWW-EGLL"}},{"flight":{"flightno":"BAW706","timestamp":"2011-03-21 19:08:02","route":"EGLL-LOWW"}},{"flight":{"flightno":"BAW5MG","timestamp":"2

我有以下验证为有效JSON的JSON

{"flights":[{"flight":{"flightno":"BAW699","timestamp":"2011-03-22 07:06:02","route":"LOWW-EGLL"}},{"flight":{"flightno":"BAW706","timestamp":"2011-03-21 19:08:02","route":"EGLL-LOWW"}},{"flight":{"flightno":"BAW5MG","timestamp":"2011-03-21 16:33:02","route":"LEMG-EGLL"}},{"flight":{"flightno":"BAW3AG","timestamp":"2011-03-21 11:25:02","route":"EGLL-LEMG"}},{"flight":{"flightno":"BAW5EB","timestamp":"2011-03-20 19:18:02","route":"EGLL-LPPT"}},{"flight":{"flightno":"BA0489","timestamp":"2011-03-20 09:40:02","route":"LEBL-EGLL"}},{"flight":{"flightno":"BA0475","timestamp":"2011-03-19 16:51:02","route":"LEBL-EGLL"}},{"flight":{"flightno":"BAW489","timestamp":"2011-03-18 08:08:02","route":"LEBL-EGLL"}},{"flight":{"flightno":"BA0799","timestamp":"2011-03-17 18:37:02","route":"EGLL>EFHK"}},{"flight":{"flightno":"BAW799","timestamp":"2011-03-17 16:31:01","route":"EFHK-EGLL"}},{"flight":{"flightno":"BAW794","timestamp":"2011-03-17 11:55:02","route":"EGLL-EFHK"}},{"flight":{"flightno":"GEUUZ","timestamp":"2011-03-17 09:43:02","route":""}},{"flight":{"flightno":"BAW487","timestamp":"2011-03-16 19:32:01","route":"LEBL-EGLL"}},{"flight":{"flightno":"BAW486","timestamp":"2011-03-16 16:57:02","route":"EGLL-LEBL"}},{"flight":{"flightno":"BAW459","timestamp":"2011-03-16 14:10:01","route":"LEMD-EGLL"}},{"flight":{"flightno":"BAW41LM","timestamp":"2011-03-16 10:09:02","route":"EGLL-LEMD"}},{"flight":{"flightno":"BA0795","timestamp":"2011-03-16 08:27:02","route":""}},{"flight":{"flightno":"BAW795","timestamp":"2011-03-16 07:01:02","route":"EFHK-EGLL"}},{"flight":{"flightno":"BAW798","timestamp":"2011-03-15 18:23:02","route":"EGLL-EFHK"}},{"flight":{"flightno":"BAW701","timestamp":"2011-03-15 14:24:01","route":"LOWW-EGLL"}},{"flight":{"flightno":"BAW700","timestamp":"2011-03-15 11:04:01","route":"EGLL-LOWW"}},{"flight":{"flightno":"BAW68BL","timestamp":"2011-03-15 08:14:01","route":"LEBL-EGLL"}},{"flight":{"flightno":"BAW82BL","timestamp":"2011-03-14 18:40:03","route":"EGLL-LEBL"}},{"flight":{"flightno":"BAW849","timestamp":"2011-03-14 08:15:02","route":"EPWA-EGLL"}},{"flight":{"flightno":"BAW40CB","timestamp":"2011-03-13 19:30:03","route":"EGLL-LEBL"}},{"flight":{"flightno":"BAW475","timestamp":"2011-03-13 15:30:02","route":"LEBL-EGLL"}},{"flight":{"flightno":"z.NO-FLIGHTNO","timestamp":"2011-03-13 13:00:03","route":""}},{"flight":{"flightno":"BAW474","timestamp":"2011-03-13 12:00:03","route":"EGLL-LEBL"}},{"flight":{"flightno":"BAW4WP","timestamp":"2011-03-13 08:45:02","route":"LPPT-EGLL"}}]}
然后我尝试使用JSONKit解析它,但只能深入到“flights”,我似乎无法访问“flights”对象

当我做以下事情时

    -(void)parseJSON:(NSString *)jsonData{

   NSDictionary *deserializedData = [jsonData objectFromJSONString];
    for (id key in deserializedData) {

        NSLog(@"key: %@, value: %@", key, [deserializedData objectForKey:key]);

    }

}
日志中只显示以下内容

key: flights, value: (
        {
        flight =         {
            flightno = BAW906N;
            route = "EGLL-EDDF";
            timestamp = "2011-03-24 08:38:02";
        };
    },
        {
        flight =         {
            flightno = BAW365;
            route = "LFLL-EGLL";
            timestamp = "2011-03-24 06:17:01";
        };
    },
        {
        flight =         {
etc....

我希望能够坐到每一次航班上,现在我被卡住了

这是因为您的dictionairy对象中有一个dictionairies数组,所以按如下方式访问它们:

for (NSDictionairy *flight in [deserializedData objectForKey:@"flights"]){
    NSLog(@"flight object with route.: %@", [flight objectForKey:@"route"]);
}
NSArray *flights = [deserializedData valueForKeyPath:@"flights.flight"];

这是因为在dictionairy对象中有一个dictionairies数组,访问它们的方式如下:

for (NSDictionairy *flight in [deserializedData objectForKey:@"flights"]){
    NSLog(@"flight object with route.: %@", [flight objectForKey:@"route"]);
}
NSArray *flights = [deserializedData valueForKeyPath:@"flights.flight"];

获取所有航班的数组,如下所示:

for (NSDictionairy *flight in [deserializedData objectForKey:@"flights"]){
    NSLog(@"flight object with route.: %@", [flight objectForKey:@"route"]);
}
NSArray *flights = [deserializedData valueForKeyPath:@"flights.flight"];

获取所有航班的数组,如下所示:

for (NSDictionairy *flight in [deserializedData objectForKey:@"flights"]){
    NSLog(@"flight object with route.: %@", [flight objectForKey:@"route"]);
}
NSArray *flights = [deserializedData valueForKeyPath:@"flights.flight"];

嗯,不是吗?出现了很多错误-[NSCFString objectForKey:]:未识别的选择器已发送到NSLog上的实例0x719d930!在for语句中使用了错误的变量,我编辑了代码并进行了测试。很好,不是吗?出现了很多错误-[NSCFString objectForKey:]:未识别的选择器已发送到NSLog上的实例0x719d930!在for语句中使用了错误的变量,我编辑了代码并进行了测试。很好。我建议使用json框架。我建议使用json框架。每个都是字典吗?从JSON结构来看,我会说是。每个都是字典吗?从JSON结构来看,我会说是