我正在努力使用这个数据集:
stopsArray: (
(
{
DistanceFromStart = 0;
Ordinal = 1;
Stop = {
Lat = "38.90282440185547";
Lon = "-77.03208160400391";
OrgAbbr = "<null>";
OrgId = DcCi;
StopCode = 1001259;
StopId = "DcCi_1445_7727";
StopName = "NW 14TH ST & NW K ST";
};
},
{
DistanceFromStart = "0.443314063224555";
Ordinal = 2;
Stop = {
Lat = "38.90834426879883";
Lon = "-77.03208923339844";
OrgAbbr = "<null>";
OrgId = DcCi;
StopCode = 1001393;
StopId = "DcCi_1445_7808";
StopName = "NW 14TH ST & NW RHODE ISLAND AV";
};
},
{
DistanceFromStart = "1.050716048463951";
Ordinal = 3;
Stop = {
Lat = "38.91703033447266";
Lon = "-77.03196716308594";
OrgAbbr = "<null>";
OrgId = DcCi;
StopCode = 17348;
StopId = "DcCi_1445_6674";
StopName = "NW 14TH ST & NW U ST";
};
},
我不确定这是数组,字典还是组合。我如何区分?
如何提取“序数”字段以及“停止”数据集中的元素?
要获取stopsArray
数据,我使用了这一行:
stopsArray = [variantArray valueForKey:@"Stops"];
我试图用这个来拉第一个Ordinal字段(即1):
NSMutableArray *array = stopsArray[0];
NSString *string = [array valueForKey:@"Ordinal"];
NSLog(@"string: %@", string);
但结果是:
string: (
1,
2,
3,
4,
5,
6,
7
)
任何阻止我的头发出现的想法都会受到欢迎。
我会同时坚持下去。
答案 0 :(得分:1)
首先,它是一个字典类型的对象数组。
其次,数据似乎没有正确格式化。
它就像一个带有单个字体类型对象的数组,但该单个对象包含所有不同的字典值。
因此你的结果
string: (
1,
2,
3,
4,
5,
6,
7
)
在我看来,问题是第二个开放式括号
stopsArray: (
(
{
尝试这样做......
NSMutableArray *array = stopsArray[0];
NSMutableArray *actualDataArray = array[0];
然后
NSString *string = [actualDataArray[INDEX_OF_DIC_OBJECT] valueForKey:@"Ordinal"];
NSLog(@"string: %@", string);
Lemme知道它是否有效。
更新了解决方案 什么最终为David DelMonte工作。
NSString *string = [[[stopsArray objectAtIndex:0] objectAtIndex:0] objectForKey:@"Ordinal"];