【问题标题】:Show array data into one dictionary?将数组数据显示到一个字典中?
【发布时间】:2016-05-30 07:30:26
【问题描述】:

我有这个解析数据

你好 {"response":"200","category-list":true,"category":[{"prod_id":"1","prod_name":"Apparel & Accessories","prod_status":" 1","prod_order":"1","prod_slug":"apparel-accessories"},{"prod_id":"2","prod_name":"汽车服务","prod_status":"1","prod_order ":"2","prod_slug":"automotive-services"},{"prod_id":"12","prod_name":"Building and Construction","prod_status":"1","prod_order":"11 ","prod_slug":"building-and-construction"},{"prod_id":"9","prod_name":"商业和专业服务","prod_status":"1","prod_order":"8" ,"prod_slug":"business-professional-services"},{"prod_id":"10","prod_name":"商业服务","prod_status":"1","prod_order":"9","prod_slug ":"business-services"},{"prod_id":"11","prod_name":"社区与教育","prod_status":"1","prod_order":"10","prod_slug":"community -education"},{"prod_id":"13","prod_name":"Education","prod_status":"1","prod_order":"12","prod_slug":"education"},{"prod_id ":"14","prod_name":"娱乐与媒体","prod_status":"1","prod_order": "13","prod_slug":"娱乐媒体"},{"prod_id":"15","prod_name":"家庭和社区","prod_status":"1","prod_order":"14", "prod_slug":"family-community"},{"prod_id":"16","prod_name":"Finance","prod_status":"1","prod_order":"15","prod_slug":"finance "},{"prod_id":"17","prod_name":"Finance & Legal","prod_status":"1","prod_order":"16","prod_slug":"finance-legal"},{ "prod_id":"18","prod_name":"食品和餐饮","prod_status":"1","prod_order":"17","prod_slug":"food-dining"},{"prod_id": "3","prod_name":"FREIGHT","prod_status":"1","prod_order":"3","prod_slug":"bgdr"},{"prod_id":"19","prod_name": "健康与医学","prod_status":"1","prod_order":"18","prod_slug":"health-medicine"},{"prod_id":"20","prod_name":"家居与园艺","prod_status":"1","prod_order":"19","prod_slug":"home-garden"},{"prod_id":"21","prod_name":"Home Repair & Improvement"," prod_status":"1","prod_order":"20","prod_slug":"home-repair-improvement"},{"prod_id":"22","prod_name":"工业用品和服务","prod_status ":"1","亲d_order":"21","prod_slug":"industrial-supplies-services"},{"prod_id":"23","prod_name":"信息技术","prod_status":"1","prod_order": "22","prod_slug":"信息技术"},{"prod_id":"24","prod_name":"Legal","prod_status":"1","prod_order":"23","prod_slug ":"legal"},{"prod_id":"7","prod_name":"我的新类别","prod_status":"1","prod_order":"6","prod_slug":"new-category "},{"prod_id":"8","prod_name":"我的测试类别","prod_status":"1","prod_order":"7","prod_slug":"my-testing-category"} ,{"prod_id":"4","prod_name":"PELLETS","prod_status":"1","prod_order":"4","prod_slug":"gdgggdsgdfgdg"},{"prod_id":"25 ","prod_name":"个人护理","prod_status":"1","prod_order":"24","prod_slug":"personal-care"},{"prod_id":"26","prod_name" :"公用事业和环境","prod_status":"1","prod_order":"25","prod_slug":"public-utilities-environment"},{"prod_id":"27","prod_name": "房地产","prod_status":"1","prod_order":"26","prod_slug":"real-estate"},{"prod_id":"28","prod_name":"Real Estat电子与保险","prod_status":"1","prod_order":"27","prod_slug":"real-estate-insurance"},{"prod_id":"29","prod_name":"Shopping" ,"prod_status":"1","prod_order":"28","prod_slug":"shopping"},{"prod_id":"30","prod_name":"Shopping & Specialty Stores","prod_status": "1","prod_order":"29","prod_slug":"shopping-specialty-stores"},{"prod_id":"31","prod_name":"Sports & Recreation","prod_status":"1 ","prod_order":"30","prod_slug":"sports-recreation"},{"prod_id":"6","prod_name":"运输服务","prod_status":"1","prod_order" :"5","prod_slug":"transport"},{"prod_id":"32","prod_name":"运输","prod_status":"1","prod_order":"31","prod_slug" :"transportation"},{"prod_id":"33","prod_name":"Travel","prod_status":"1","prod_order":"32","prod_slug":"travel"},{" prod_id":"34","prod_name":"旅游和住宿","prod_status":"1","prod_order":"33","prod_slug":"travel-lodging"},{"prod_id":" 35","prod_name":"未分类","prod_status":"1","prod_order":"34","prod_slug":"未分类"}]}

我试过这个:-

- (IBAction)SelectCategory:(id)sender
{
    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init] ;
    [request setURL:[NSURL URLWithString:@"http://d.com/category"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    NSError *error;
    NSURLResponse *response;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSString *str=[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding];
    NSLog(@"hello %@",str);

    NSDictionary *dict1 = [NSJSONSerialization JSONObjectWithData:urlData options:kNilOptions error:&error];

    categoryArray =[[NSArray alloc]init];

    CategoryDict = [[NSMutableDictionary alloc]init];
    categoryArray = [dict1 allValues];
    CategoryDict = [[categoryArray objectAtIndex:0]valueForKey:@"prod_name"];

    NSLog(@"category dict = %@",CategoryDict);
    [CategoryTable reloadData];
    CategoryTable.hidden = FALSE;


}

如何将“prod_name”数据放入cellUITableView 中? 提前谢谢。

【问题讨论】:

  • 你能展示你尝试过的代码吗
  • 你把它存储在数组中了吗?
  • 不,我必须将其存储在一个字典中,然后我将在表中显示该数据
  • 不用存字典了兄弟,直接访问,直接显示代码,优化方便
  • NSArray *categoryArray = [dict1 valueForKey:@"category"];并在单元格 [[categoryArray objectAtIndex:indexPath.row]valueForKey:@"@"prod_name""];

标签: ios objective-c json nsdictionary


【解决方案1】:

喜欢

在您的 ViewDidLoad 上

 @interface XXXXViewController ()
{
 NSMutableArray *categoryArray;
}

 - (void)viewDidLoad
 {
[super viewDidLoad];
 categoryArray =  [[NSMutableArray alloc]init];
  }

  NSDictionary *dict1 = [NSJSONSerialization JSONObjectWithData:urlData options:kNilOptions error:&error];

  categoryArray  =  [dict1 valueForKey:@"category"] ;  

    if (categoryArray.count > 0)      
    {
     CategoryTable.hidden = FALSE;
    [CategoryTable reloadData];
    }
}

并访问 Like

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
{
return [categoryArray count];
}

  - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
 {
 cell.textLabel.text=[NSString stringWithFormat:@"%@ ",[[categoryArray objectAtIndex:indexPath.row] objectForKey:@"prod_name"]];
   }

【讨论】:

  • 你能打印NSLog(@"categoryArray = %@", categoryArray);
  • 是的,现在数据显示在表格上,非常感谢
【解决方案2】:

使用 id 如下

这只是一个让你理解的工作演示

正如您在回复中看到的,您将获得一系列字典。使用 id 告诉编译器您要访问哪个特定的 key value 对,例如:

categoryArray =[[NSArray alloc]init];
categoryArray = [dict1 allValues];
id keyValuePair = categoryArray[indexPath.row];

//分配给你的tableview单元格

cell.product_name_label.text = keyValuePair[@"prod_name"];

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-13
    • 2020-05-30
    • 1970-01-01
    • 1970-01-01
    • 2022-09-28
    相关资源
    最近更新 更多