2012-07-20 125 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