【问题标题】:How to parse api response on table view?如何解析表格视图上的 api 响应?
【发布时间】: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 看看我的解决方案...

标签: iphone ios json uitableview


【解决方案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 使用起来更方便,性能也更好。不明白你为什么投反对票。
  • 链接很好。这就是我们需要的,一个解释。 @GrzegorzKrukowski 我投了反对票,因为您没有提供任何理由就推荐了一个外部库。
  • 好的,明白了。对不起;)下次会做得更好
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-02-08
  • 2019-02-27
  • 1970-01-01
  • 1970-01-01
  • 2014-07-15
  • 2022-11-25
  • 2018-03-07
相关资源
最近更新 更多