2012-12-03 34 views
3

我是NSJSONSerialization的新手。 這裏是我的瀏覽器輸出:NSJSON序列號

{ 
    "appointment": [ 
    { 
     "w1": "Mallya Hospital", 
     "w2": "Nagarjuna Hospital", 
     "w3": "Mallige  Hospital", 
     "w4": "Mallya Hospital", 
     "t1": [ 
     "08:00 - 08:25", 
     "08:25 - 08:50", 
     "08:50 - 09:15", 
     "09:15 - 09:40" 
     ], 
     "t2": [ 
     "14:00 - 14:05", 
     "14:05 - 14:10", 
     "14:10 - 14:15", 
     "14:15 - 14:20", 
     "14:20 - 14:25", 
     "14:25 - 14:30", 
     "14:30 - 14:35", 
     "14:35 - 14:40", 
     "14:40 - 14:45", 
     "14:45 - 14:50", 
     "14:50 - 14:55", 
     "14:55 - 15:00", 
     "15:00 - 15:05", 
     "15:05 - 15:10", 
     "15:10 - 15:15", 
     "15:15 - 15:20", 
     "15:20 - 15:25", 
     "15:25 - 15:30", 
     "15:30 - 15:35", 
     "15:35 - 15:40", 
     "15:40 - 15:45", 
     "15:45 - 15:50", 
     "15:50 - 15:55" 
     ], 
     "t3": [ 
     "14:00 - 14:35", 
     "14:35 - 15:10", 
     "15:10 - 15:45" 
     ], 
     "t4": [ 
     "16:30 - 17:15", 
     "17:15 - 18:00" 
     ], 
     "tp1": "25", 
     "tp2": "5", 
     "tp3": "35", 
     "tp4": "45", 
     "ts1": "8:00 - 10:00", 
     "ts2": "14:00 - 16:00", 
     "ts3": "14:00 - 16:00", 
     "ts4": "16:30 - 18:30", 
     "offdays": "4-6" 
    } 
    ] 
} 

我需要定時進入標籤和醫院的名稱到另一個。我如何使用NSJSONSerialization獲得上面給出的時間?

回答

1

首先,您必須將字符串/文件轉換爲可以反序列化

NSData *data = [stringData dataUsingEncoding:NSUTF8StringEncoding]; 

可視化你的數據是怎麼回事的JSON對象進行組織,一個quick beautifier會顯示您的數據如下結構的數據Dictionary->陣列(1個元件) - > Dictionaries->陣列/價值觀

例如,訪問時間具體爲:

NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &e]; //Options can be simply 0 

NSArray *t1 = jsonObject[@"appointment"][0][@"t1"]; 
+0

感謝您的響應.. IC opied的代碼,但iamb得到一個錯誤,顯示「數組下標不是一個整數」 – user1871889

+0

這裏是我的代碼--- NSURL * urlBook = [NSURL URLWithString:strBook]; NSData * dataBook = [NSData dataWithContentsOfURL:urlBook]; jsonBookDict = [NSJSONSerialization JSONObjectWithData:dataBook選項:nil error:nil]; NSArray * t1 = jsonBookDict [@「appointment」] [0] [@「t1」]; NSArray * keys; keys = [jsonBookDict allKeys]; 的for(int i = 0;我<= [鍵計數] -1;我++) { 的NSArray * arrayBook = [[jsonBookDict valueForKey:[鍵objectAtIndex:I]] valueForKey:@ 「T2」]; NSString * strBook = [arrayBook objectAtIndex:i]; – user1871889

+0

這意味着你正在使用除整數之外的任何東西來訪問數組。仔細檢查你的JSON對象,以確保你不會誤認爲數組的字典 – John