如何解析表格视图上的 api 响应?

Posted

技术标签:

【中文标题】如何解析表格视图上的 api 响应?【英文标题】:How to parse api response on table view? 【发布时间】:2013-09-10 11:19:49 【问题描述】:

我的 json 响应数据格式为:-

["0":"1","id":"1","1":"Pradeep","name":"Pradeep","2":null,"sender":null,"3":null,"

所以要解析表格视图上的“名称”?

我自己的实现是:-

我是ios开发新手,请帮帮我

-(void)connectionDidFinishLoading:(NSURLConnection *)connection

    NSDictionary *allDataDictionary=[NSJSONSerialization JSONObjectWithData:webData 
options:0 error:nil]; // response saved in allDataDictionary 

    NSDictionary *feed=[allDataDictionary objectForKey:@"feed"]; // feeds entry 

    NSArray *feedforentry=[feed objectForKey:@"entry"];

    for(NSDictionary *diction in feedforentry)
    
        NSDictionary *title=[diction objectForKey:@"title"];
        NSString *label=[title objectForKey:@"label"];
        [array addObject:label];   
    
    [[self JustConfesstable]reloadData]; // reload table     

【问题讨论】:

缺少部分 JSON... NSData *jsonData = [jsonString dataUsingEncoding:NSUTF8StringEncoding]; id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData 选项:kNilOptions 错误:&jsonError]; if ([jsonObject isKindOfClass:[NSArray class]]) arrResult = (NSArray *)jsonObject; Rinkal Rajoria 看看我的解决方案... 【参考方案1】:

首先在 Dictionary 中获取数据,然后在 NSArray 中存储您想要的内容。使用 Keys

NSDictionary *json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &error];

    NSLog(@"%@",json);

    NSLog(@"%@",delegate.firstArray);

    NSArray * responseArr = json[@"Deviceinfo"];

    NSArray * firstarray=[[NSArray alloc]init];

    for(NSDictionary * dict in responseArr)
    
        [firstarray addObject:[dict valueForKey:@"name"]];
    

第一个数组包含名称.. 你想要从那个 json 响应中得到什么。

然后将该数据传递给 tablview。你想在这里做什么,你会得到名称数据的数组。

【讨论】:

NSLog(@"%@",delegate.firstArray); NSArray * responseArr = json[@"Deviceinfo"];什么是委托和第一个数组?这会产生未声明标识符的错误 如果你有一个直接声明 Firstarray 的类数组,我会将该数组声明为 appdelegate。和 deviceinfo 是我的 nsdictionary 主键..【参考方案2】:

您需要使用 JSON 解析器。我会推荐:https://github.com/johnezang/JSONKit

你可以这样做:

JSONDecoder *jsonKitDecoder = [JSONDecoder decoder];
NSError *error = nil;
id objectFromJson = [jsonKitDecoder objectWithData:data error:&error];

【讨论】:

有什么理由推荐 JSON 解析器而不是 JSONSerialization? 这只是一个建议...我发现它比 JSONSerialization 使用起来更方便,性能也更好。不明白你为什么投反对票。 @Puneet bonto.ch/blog/2011/12/08/… 链接很好。这就是我们需要的,一个解释。 @GrzegorzKrukowski 我投了反对票,因为您没有提供任何理由就推荐了一个外部库。 好的,明白了。对不起;)下次会做得更好

以上是关于如何解析表格视图上的 api 响应?的主要内容,如果未能解决你的问题,请参考以下文章

如何使背景图像和表格响应?

在选择表格单元格“didSelect”时如何将图像解析到另一个视图?

如何从Angular中的响应中解析HTML?

如何在 iphone 的表视图上加载 Soap 响应

如何在 React js 中以表格格式显示 API 响应?

如何让 UITableView 标题视图出现在响应者链中的表格单元格之前?