如何从服务器解析 json 值,并将其显示在 tableview 单元格中
Posted
技术标签:
【中文标题】如何从服务器解析 json 值,并将其显示在 tableview 单元格中【英文标题】:How to parse json value from server, and display it in tableview cell 【发布时间】:2017-04-03 07:15:40 【问题描述】: "Names":[
"type":"Name",
"id":
"type":"Point",
"coordinates":[
80.26483,
13.08891
]
,
"properties":
"region":"Tamil Nadu",
"region_gid":"whosonfirst:region:85672245",
"county":"Chennai",
"county_gid":"whosonfirst:county:890505403",
"label":"Chennai, India"
,
"type":"Name",
"id":
"type":"Point",
"coordinates":[
80.27847,
13.08784
]
,
for(NSDictionary * dict in autocompletedata)
Autodata *data = [[Autodata alloc]init];
NSMutableArray *coordinates =[dict valueForKey:@"geometry"];
NSMutableArray *propertiesarray = [dict valueForKey:@"properties"];
for(NSDictionary *properties_dict in propertiesarray)
data.searchterm = [properties_dict objectForKey:@"label"];
NSLog(@"searchterm%@",coordinates);
NSLog(@"coordinates%@",propertiesarray);
[autodataarray addObject:data];
从服务器解析json值并显示在tableview单元格中。
我需要在表格视图单元格中显示标签和坐标、区域。
但是,我有一个错误。我不知道如何解析它。我在想也许我可以将 id 和 properties 保存在不同的数组中,从中我可以获得坐标和标签的值。
【问题讨论】:
你能显示完整的 JSON 响应吗 更新了一些语法和格式。 【参考方案1】:NSArray *YourArray =[Json objectForKey:@"Names"];
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
NSString *strlabel =[[[YourArray objectAtIndex:indexPath.row]objectForKey:@"properties"]objectForKey:@"label"];
NSString *strregion =[[[YourArray objectAtIndex:indexPath.row]objectForKey:@"properties"]objectForKey:@"region"];
NSArray *cordintateArray =[[[YourArray objectAtIndex:indexPath.row]ojectForKey:@"id"]objectForKey:@"coordinates"];
【讨论】:
永远欢迎您@diva【参考方案2】:来自网络服务的成功
yourArray=[dictDashboardData objectForKey:@"Names"];
[yourTableView reloadData];
表格查看方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
return yourArray.count;
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//...
NSDictionary *dictData = [yourArray objectAtIndex:indexPath.row];
cell.yourLabel.text=[dictData objectForKey:@"type"];
cell.yourLabel.text=[dictData objectForKey:@"id"];
cell.yourLabel.text=[[dictData objectForKey:@"id"]objectForKey:@"type"];
cell.yourLabel.text=[[dictData objectForKey:@"id"]objectForKey:@"coordinates"];
cell.yourLabel.text=[dictData objectForKey:@"properties"];
return cell;
【讨论】:
【参考方案3】:self.Array1 = JSON.object(forKey: "Names") as! NSArray
for i in 0..<self.Array.count
let item = self.Array[i] as! [String: AnyObject]
//declare Object
let SampleDetails = SampleObjectModel()
SampleDetails.Name = ApiClients.sharedInstance.nullremove(value:item["type"]as AnyObject) as! String
self.Array2.append(SampleDetails)
//tableview 委托
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
// create a new cell if needed or reuse an old one
let cell = Tableview.dequeueReusableCell(withIdentifier: cellReuseIdentifier, for: indexPath) as!tableviewcell
//import objectModel and get the data
let sampleObject = SampleModel.Array2[indexPath.row]
cell.Namelabel.text = sampleObject.Name
【讨论】:
以上是关于如何从服务器解析 json 值,并将其显示在 tableview 单元格中的主要内容,如果未能解决你的问题,请参考以下文章
如何拆分/解析 JSON 数据并将其保存到 SQL 服务器中?
如何从 Spotify Search API 获取数据并将其解析为 JSON? [在 node.js 中
如何从 json 中获取 int 并将其解析为 dart 中的 bool?