在表格视图中显示带有JSON结果的数据

时间:2015-07-30 01:22:12

标签: ios objective-c xcode uitableview

我被卡住了!我想在tableView中显示数据结果。我创建了一个具有相同属性的类。我应该迭代eache密钥并将其存储在NSArray中吗?!我现在应该做什么?

NSDictionary *result =[NSJSONSerialization JSONObjectWithData:requestHandler options:NSJSONReadingMutableLeaves error:nil];

2015-07-29 17:55:12.669 Test[9051:173867] {
0 = 200;
data = (
        {
            name = "John";
            lasta_name = "Frusciante"
            "avatar" = "https://pictures.com/2516137_1185214515_1677640606.png";
            "descripcion" = "Guitar player";
        },
        {

            name = "Chad";
            lasta_name = "Smith"
            "avatar" = "https://pictures.com/2516137_1185214515_1677640606.png";
            "descripcion" = "Drummer";
        },
        {

            name = "Flea";
            lasta_name = "Balzary"
            "avatar" = "https://pictures.com/2516137_1185214515_1677640606.png";
            "descripcion" = "Bass player";
        },
        {
            name = "Anthony";
            lasta_name = "Kiedis"
            "avatar" = "https://pictures.com/2516137_1185214515_1677640606.png";
            "descripcion" = "Vocalist";
        }
)

}

2 个答案:

答案 0 :(得分:0)

如果你有一个类,你可以用每个对象构造该类,并将其存储在一个数组中。

然后使用刚刚创建的对象数组来填充tableview

这是一个非常好的答案,展示了解决方案:https://stackoverflow.com/a/21207931/2803660

答案 1 :(得分:-1)

是的,您必须将JSON转换为NSArray。

一种很棒的方法是使用Mantle将JSON转换为类的实例。 https://github.com/Mantle/Mantle

代码就像这样

+ (NSDictionary *)JSONKeyPathsByPropertyKey {
    return @{
             @"imageUrlString"      : @"icon",
             @"smallImageUrlString" : @"icon_small",
             @"desc"                : @"title",
             };
}

在你的班级中,左边是你班级的财产,右边是JSON密钥 和NSArray *array = [MTLJSONAdapter modelsOfClass:[YourClass class] fromJSONArray:JSONArray error:nil]你需要使用的地方。

然后您可以使用该数组作为tableView的数据源。