我正在将JSON解析为我的MASTER-DETAIL应用程序,并且在“深入挖掘”时遇到问题。进入JSON。我无法在detailTableView
中获取数据。
在我的detailTableView
中,我想要的名称是,在这种情况下,酒店/ pousadas。
请参阅我的JSON和detailTableView.m:
[
{
"title": "Where to stay",
"pousadas":
[
{
"beach": "Arrastão",
"name": "Hotel Arrastão",
"address": "Avenida Dr. Manoel Hipólito Rego 2097",
"phone": "+55(12)3862-0099",
"Email": "hotelarrastao_reserva@hotmail.com",
"image": "test.jpg",
"latitude": "-23.753355",
"longitude": "-45.401946"
}
]
}
]
tableView in detailTableView.m:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
return self.stayGuide.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"detailCellStay"];
以下是我的试用版:
NSString *pous = [self.stayGuide valueForKey:@"name"];
NSLog([self.stayGuide valueForKey:@"name"]);
cell.textLabel.text = pous;
return cell;
}
提前致谢!
答案 0 :(得分:2)
您正在错误地阅读JSON!我们来看看您的数据:
[ <---- array
{ <---- dictionary
"title": "Where to stay",
"pousadas": [ <---- array
{ <---- dictionary
"beach": "Arrastão",
"name": "Hotel Arrastão",
"address": "Avenida Dr. Manoel Hipólito Rego 2097",
"phone": "+55(12)3862-0099",
"Email": "hotelarrastao_reserva@hotmail.com",
"image": "test.jpg",
"latitude": "-23.753355",
"longitude": "-45.401946"
}
]
}
]
假设您将数据存储在“stayGuide”属性(应该是NSArray类型)中,您可以像这样访问初始字典:
NSDictionary *initialDictionary = [self stayGuide][0]; // access using new Objective-C literals
现在,您可以在此处访问各种值,例如“pousadas”数组。
NSArray *pousadas = initialDictionary[@"pousadas"];
现在,就像我们使用初始字典一样,我们可以访问pousadas数组中的第一个对象。
NSDictionary *dictionary = pousadas[0];
最后,我们可以在第一个pousadas字典中访问其中一些键。
NSString *beach = dictionary[@"beach"];
NSString *name = dictionary[@"name"];
NSString *address = dictionary[@"address"];
NSLog(@"Beach: %@, Name: %@, Address: %@"beach,name,address);
但是,将来你可能希望stayGuide属性等于pousadas数组。您可以像这样设置它(其中initialJSONArray是您的起始JSON数据):
[self setStayGuide:initialJSONArray[0][@"pousadas"]];