Objective C从URL读取JSON到NSDictionary

时间:2015-02-11 01:37:59

标签: ios objective-c json uitableview

所以我正在创建一个获取用户当前位置的应用程序,然后将纬度和经度坐标发送到此URL以查看附近有哪些所需的商店。我能够做我刚刚提到的一切,但不知道如何阅读网页内容的内容,并用它来形成一个表格视图/以最短的距离安排它等。我做了一些研究,发现这是JSON,并设法使用NSJSONSerialization将URL中的内容解析为NSDictionary。我不确定的是如何阅读包含JSON语法的NSDictionary的内容。我需要像' name',' distance','格式化地址'以及通过排序'距离'来安排我的数据在UITableView中。按升序排列。

以下是我从网址获取的JSON脚本的屏幕截图:JSON SCREENSHOT

1 个答案:

答案 0 :(得分:0)

这是您访问不同场地NSArray的方法:

  NSArray* locationsArray = jsonDictionary[@"response"][@"venues"];

从那里您可以访问所有位置数据。我将为这些位置创建一个新的模型类,其CLLocation属性用于存储经度和纬度以及距离属性。迭代数组并实例化模型,同时计算距设备当前位置的距离:

NSMutableArray *locationObjectsArray;
for (NSDictionary *locationDict in locationsArray)
{
    Location *newLocation = [Location alloc] initWith...];
    newLocation.distance = [newLocation.coordinate distanceFromLocation:deviceLocation];
    [locationObjectsArray addObject:newLocation];
}

NSArray * results = [sortedLocations sortedArrayUsingDescriptors:@[[[NSSortDescriptor alloc] initWithKey:@"distance"
                                                                              ascending:YES]]];

这应该为您提供一系列按设备距离排序的位置,您现在可以在表格中显示这些位置。