我正在使用来自Foursquare API的数据。

我想获取一份咖啡店的清单,并正确地将其取回(我正在使用RestKit)...但是一旦获得该清单,我需要过滤掉所有属于“星巴克”的咖啡店。 。

因此,现在我只知道如何进入所有咖啡店,但是在将数据提供到应用程序表视图之前,我不知道如何解析这些数据,因此不会列出任何星巴克咖啡店。

有什么想法可以做到吗? 让我知道您是否需要发布任何可能有用的代码段。 谢谢!

编辑

API的正常响应类型为:

"venue": [{
    "name": "ABC Coffee Shop", {

因此,我需要使用“ name”并过滤掉所有"Starbucks"名称。

===============>>#1 票数:3 已采纳

如果FourSquare不允许您将过滤器应用于请求,以过滤名称“ Starbucks”,那么我将执行以下操作。

我将从将响应反序列化为JSON对象开始,在这种情况下将是字典。

NSError *error = nil;
NSDictionary *responseDict = [[NSJSONSerialization JSONObjectWithData:foursquareResponse options:0 error: &error];
NSArray *starbucks = nil;
if (!error) {
    NSArray *coffeeShops = responseDict[@"venue"];
    starbucks = [coffeeShops filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"name = 'Starbucks'"]];
} else {
    // handle the error
}

NSLog(@"Starbucks: %@", starbucks");

我没有测试此代码,但我认为它应该可以帮助您。

===============>>#2 票数:1

在我看来像JSON,您可以只使用内置的JSON解析器NSJSONSerialization类。 这是我构建的一种方法,该方法采用NSData JSON参数,将其反序列化并返回字典。

- (NSMutableDictionary *)deserialize: (NSData *)data {

    return [[NSJSONSerialization JSONObjectWithData:data options:kNilOptions error: nil] mutableCopy];
}

我不知道Foursquare的响应结构由内而外,因此您可能想使用NSLog()返回的字典,以查看现在如何引用它。

  ask by Realinstomp translate from so

未解决问题?本站智能推荐: