如何从NSData获取详细信息

时间:2013-05-07 09:10:01

标签: iphone ios ios5 nsdata

我想从以下网址获取指定数据html_instructions。我可以从此URL获取所有数据。

但我只需要具体的html_instructions。我该如何拆分数据?

我使用以下代码将URL转换为NSData:

 NSString *url = [NSString      stringWithFormat:@"http://maps.googleapis.com/maps/api/directions/json?origin=Chennai&destination=Madurai&sensor=false"];
    NSURL *googleRequestURL=[NSURL URLWithString:url];
    dispatch_async(kBgQueue, ^{
    NSData* data = [NSData dataWithContentsOfURL: googleRequestURL];
    });

2 个答案:

答案 0 :(得分:2)

将此用作:

    NSData* data = [NSData dataWithContentsOfURL:googleRequestURL];
    if (data == nil) {
        return;
    }
    NSError* error;
    NSMutableDictionary* json = [NSJSONSerialization
                                 JSONObjectWithData:data

                                 options:kNilOptions
                                 error:&error];

    NSLog(@"Json : %@",json);

希望它对你有所帮助。

答案 1 :(得分:1)

我从以下url解析了json并打印了html指令尝试复制此代码并尝试: http://maps.googleapis.com/maps/api/directions/json?origin=Toronto&destination=Montreal&sensor=false

   NSData *receivedData = Received data from url;
   NSError* error;
   NSMutableDictionary* parsedJson = [NSJSONSerialization JSONObjectWithData:receiveData              options:kNilOptions  error:&error];

           NSArray *allkeys = [parsedJson allKeys];

        for(int i = 0; i < allkeys.count; i++){
            NSLog(@"############################");
            if([[allkeys objectAtIndex:i] isEqualToString:@"routes"]){
                NSArray *arr        = [responseJsonValue objectForKey:@"routes"];
                NSDictionary *dic   = [arr objectAtIndex:0];
                NSLog(@"ALL KEYS FROM ROUTE: %@", [dic allKeys]);
                NSArray *legs = [dic objectForKey:@"legs"];
                  NSLog(@"legs array count %d", legs.count);
                for(int i = 0;  i < legs.count; i++){
                    NSArray *stepsArr = [[legs objectAtIndex:i] objectForKey:@"steps"];
                    for (int i = 0; i < stepsArr.count; i++) {
                        NSLog(@"HTML INSTRUCTION %@", [[stepsArr objectAtIndex:i] objectForKey:@"html_instructions"]);
                    }
                }

            }
            NSLog(@"############################");
        }