0

Foursquare API を使用して、ユーザーの場所に近い場所を取得しています。1 か所のみの応答例はこちらです。

JSONkit を使用して応答を解析すると、パーサーは最初の部分を「忘れて」しまいます。私が取得するデータは、タグ「canonicalUrl」から始まります。しかし、応答の最初の部分も必要です。このコードを使用してデータを解析しています:

-(void)getDataWithLongitude:(float)longitude andLatitude:(float)latitude {

    // Get current date
    NSDate *date = [NSDate date];
    NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
    [dateFormat setDateFormat:@"YYYYMMdd"];
    NSString *dateString = [dateFormat stringFromDate:date];


    NSString *theURL = [NSString stringWithFormat:@"https://api.foursquare.com/v2/venues/search?ll=40.7,-74&client_id=MY_ID&client_secret=MY_SECRET&v=%@&locale=de&limit=10&venuePhotos=1", dateString];

    NSError *err = nil;
    NSURLResponse *response = nil;

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];

    NSURL *url = [NSURL URLWithString:theURL];

    [request setURL:url];

    [request setCachePolicy:NSURLRequestReloadIgnoringCacheData];
    [request setTimeoutInterval:30];

    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&err];

    NSDictionary *resultsDictionary = [data objectFromJSONData];
    NSArray *array = [resultsDictionary valueForKeyPath:@"response.venues"];

    NSLog(@"%@", array);
}

解析に NSJSONSerialization を使用しましたが、他の結果はありませんでした。

NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &err];
4

1 に答える 1

1

ディスカッションで明らかになったように、JSONKit と NSJSONSerialization の両方が FourSquare レスポンスを正しく解析します。

一部が欠落しているように見える唯一の理由は、辞書のキーと値のペアが JSON データとは異なる順序で表示されたためです。

于 2013-07-14T21:20:04.117 に答える