2012-07-20 120 views
2

我是新来的ios开发.. 我有问题从复杂的json响应获取数组。 所以任何人有想法它比请帮我...我 JSON响应是如下 和我想subcat_id和subcat_name的阵列复杂的JSON解析结果格式

(
    { 
    0 =   { 
     "subcat_id" = 2; 
     "subcat_name" = Restaurants; 
    }; 
    1 =   { 
     "subcat_id" = 3; 
     "subcat_name" = "Bar & Club"; 
    }; 
    "cat_id" = 1; 
    "cat_name" = "Dining & Nightlife"; 
}, 
    { 
    0 =   { 
     "subcat_id" = 5; 
     "subcat_name" = Massage; 
    }; 
    1 =   { 
     "subcat_id" = 6; 
     "subcat_name" = Facial; 
    }; 
    2 =   { 
     "subcat_id" = 7; 
     "subcat_name" = "Manicure/Pedicure"; 
    }; 
    3 =   { 
     "subcat_id" = 8; 
     "subcat_name" = Tanning; 
    }; 
    4 =   { 
     "subcat_id" = 9; 
     "subcat_name" = "Hair Salon"; 
    }; 
    5 =   { 
     "subcat_id" = 10; 
     "subcat_name" = "Hair Removal"; 
    }; 
    6 =   { 
     "subcat_id" = 11; 
     "subcat_name" = Spa; 
    }; 
    7 =   { 
     "subcat_id" = 12; 
     "subcat_name" = "Teeth Whitening"; 
    }; 
    8 =   { 
     "subcat_id" = 13; 
     "subcat_name" = "Eye & Vision"; 
    }; 
    9 =   { 
     "subcat_id" = 15; 
     "subcat_name" = "Cosmetic & Beauty Treatments"; 
    }; 
    "cat_id" = 4; 
    "cat_name" = "Health & Beauty"; 
}, 
    { 
    0 =   { 
     "subcat_id" = 17; 
     "subcat_name" = Pilates; 
    }; 
    1 =   { 
     "subcat_id" = 18; 
     "subcat_name" = Yoga; 
    }; 
    2 =   { 
     "subcat_id" = 19; 
     "subcat_name" = Gym; 
    }; 
    3 =   { 
     "subcat_id" = 20; 
     "subcat_name" = "Boot Camp"; 
    }; 
    "cat_id" = 16; 
    "cat_name" = Fitness; 
}, 
    { 
    0 =   { 
     "subcat_id" = 22; 
     "subcat_name" = "Men's Clothing"; 
    }; 
    1 =   { 
     "subcat_id" = 23; 
     "subcat_name" = "Women's Clothing"; 
    }; 
    2 =   { 
     "subcat_id" = 24; 
     "subcat_name" = "Food & Grocery"; 
    }; 
    3 =   { 
     "subcat_id" = 25; 
     "subcat_name" = "Wine & Liquor"; 
    }; 
    4 =   { 
     "subcat_id" = 26; 
     "subcat_name" = "Home Services"; 
    }; 
    5 =   { 
     "subcat_id" = 27; 
     "subcat_name" = "Rental Car/ Car Wash/ Car Repair"; 
    }; 
    6 =   { 
     "subcat_id" = 53; 
     "subcat_name" = "Product/Service Discounts"; 
    }; 
    "cat_id" = 21; 
    "cat_name" = "Retail & Services"; 
}, 
    { 
    0 =   { 
     "subcat_id" = 29; 
     "subcat_name" = Museums; 
    }; 
    1 =   { 
     "subcat_id" = 30; 
     "subcat_name" = "Wine Tasting"; 
    }; 
    10 =   { 
     "subcat_id" = 42; 
     "subcat_name" = "Dance Classes"; 
    }; 
    11 =   { 
     "subcat_id" = 50; 
     "subcat_name" = "Family Fun"; 
    }; 
    2 =   { 
     "subcat_id" = 31; 
     "subcat_name" = "City Tours"; 
    }; 
    3 =   { 
     "subcat_id" = 32; 
     "subcat_name" = "Comedy Clubs"; 
    }; 
    4 =   { 
     "subcat_id" = 33; 
     "subcat_name" = Theater; 
    }; 
    5 =   { 
     "subcat_id" = 34; 
     "subcat_name" = Concerts; 
    }; 
    6 =   { 
     "subcat_id" = 35; 
     "subcat_name" = "Education & Personal Development"; 
    }; 
    7 =   { 
     "subcat_id" = 36; 
     "subcat_name" = Golf; 
    }; 
    8 =   { 
     "subcat_id" = 38; 
     "subcat_name" = Bowling; 
    }; 
    9 =   { 
     "subcat_id" = 39; 
     "subcat_name" = "Sporting Events"; 
    }; 
    "cat_id" = 28; 
    "cat_name" = "Activities & Adventures"; 
}, 
    { 
    0 =   { 
     "subcat_id" = 44; 
     "subcat_name" = Others; 
    }; 
    1 =   { 
     "subcat_id" = 56; 
     "subcat_name" = "Accommodation and Holidays"; 
    }; 
    "cat_id" = 43; 
    "cat_name" = Others; 
}, 
    { 
    0 =   { 
     "subcat_id" = 46; 
     "subcat_name" = "Pet Grooming Services"; 
    }; 
    "cat_id" = 45; 
    "cat_name" = Pets; 
}, 
    { 
    0 =   { 
     "subcat_id" = 52; 
     "subcat_name" = "Car Servicing/Repairs"; 
    }; 
    "cat_id" = 51; 
    "cat_name" = "Car Servicing/Repairs"; 
} 
) 
+0

看看这有助于http://stackoverflow.com/questions/5813077/iphone-ios-json-parsing-tutorial – Peru 2012-07-20 10:32:29

+0

可以使用SBJSON解析此! – Nina 2012-07-20 10:46:55

+0

这是我发布的结果是使用SBJSON后的数组..我想为subcat_id和subcat_name创建数组.. – 2012-07-20 10:52:40

回答

1

您曾经参与过你的问题是什么是不是JSON 。它可能最初是作为JSON数据传输的。但是这篇文章以属性列表格式显示了一个数据结构。请注意,某些字符串是HTML或XML编码,稍后会导致问题。在将其作为JSON传输之前,您应该在源处修复此问题。

现在您发布的结果是包含更多字典的字典数组。最外面的数组是一个类别列表。每个类别都以包含其自己的名称和ID以及子类别的字典的形式给出。最内层的字典是包含其ID和名称的子类别。

类别字典有些问题,因为混合两件事情,是一个字典和数组的混合物。很难访问子类别。

您的代码可能会喜欢这样:

NSArray* categoryList = [someJSONParser parse]; 
for (NSDictionary* category in categoryList) { 
    NSString* categoryName = [category objectForKey: @"cat_name"]; 
    NSNumber* categoryIdObj = [category objectForKey: @"cat_id"]; 
    int categoryId = [categoryIdObj intValue]; 

    int index = 0; 
    NSDictionary* subcategory = [category objectForKey: [NSString stringWithFormat: @"%d", index] ]; 
    while (subcategory != nil) { 
     NSString* subcategoryName = [subcategory objectForKey: @"subcat_name"]; 
     NSNumber* subcategoryIdObj = [subcategory objectForKey: @"subcat_id"]; 
     int subcategoryId = [subcategoryIdObj intValue]; 

     index++; 
     subcategory = [category objectForKey: [NSString stringWithFormat: @"%d", index] ]; 
    } 
} 
+0

hello ....你能帮我做出多维数组,其中一方是类别ID和其他side是subcat_id和subcat_name的特定类别ID .....因为我需要它在可扩展的tableview中显示它 – 2012-07-21 04:55:05