我设法使用JSON从我的网络服务器中获取了位置列表,并从应用程序中获取了文件。
我知道它可以获取等,因为我也将其打印为NSLog,并且它在日志窗口的JSON中显示。
我的下一步是将这些值放入数组,以便最终将它们显示在UIPickerView中。
有人对我如何最好地将它们从当前JSON文件放入数组中有任何建议吗?
键是“名称”。
我无法一辈子让它循环遍历并添加到数组;也许我做错了吗?
JSON数据如下所示:
[{"Name":"Aberdaron"},{"Name":"Aberdeen"},{"Name":"Aberdovey"},{"Name":"Aberporth"},{"Name":"Aberystwyth"},{"Name":"Albert-Bridge"},{"Name":"Aldeburgh"},{"Name":"Allington-Lock"},{"Name":"Alloa"},{"Name":"Amble"},{"Name":"Amlwch"},{"Name":"Annan-Waterfoot"},{"Name":"Anstruther-Easter"},{"Name":"Applecross"},{"Name":"Appledore"},{"Name":"Arbroath"},{"Name":"Ardglass"},{"Name":"Ardnave-Point"},{"Name":"Ardrossan"},{"Name":"Arklow"},{"Name":"Arnside"},{"Name":"Arrochar"}]
到目前为止,我的代码是:
NSString * urlString = [NSString stringWithFormat:@"http://localhost:8888/Locations.php"];
NSURL * url = [NSURL URLWithString:urlString];
NSData * data = [NSData dataWithContentsOfURL:url];
NSError * error;
NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error];
NSLog(@"%@",json);
最佳答案
第一个答案很好地描述了如何解析数组并将其放入本地对象。我写了一个函数,它是NSString上的一个类别,您可以在下面使用。假设您的数组存储在名为json的变量中,那么在给出示例的情况下,我将使用以下代码:
NSMutableArray *nameArray = [NSMutableArray array];
for (NSDictionary *dictionary in json)
{
[nameArray addObject:[dictionary valueForKey:@"Name"]];
}
NSLog(@"%@",nameArray);
现在,nameArray是包含与示例中给定的“name”键相对应的所有值的数组。
关于ios - 将iOS中的一列JSON文件解析为数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13790327/