標籤:
1、如果後台返回的是字典或數組的data型,直接使用以下方法轉換:
- {
- // Data 轉成 字典 其中responseObject為返回的data資料
- NSDictionary *resultDictionary = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
- NSLog(@"resultDictionary: %@", resultDictionary);
-
- // Data 轉成 數組 其中responseObject為返回的data資料
- NSArray *resultArray = [NSJSONSerialization JSONObjectWithData:responseObject options:NSJSONReadingMutableContainers error:nil];
- NSLog(@"resultArray: %@", resultArray);
- }
2、以上方法列印出的字典、數組值為null 時,可能返回帶有其他特殊字元串,需要將返回的data資料轉成字串:
- {
- NSString *resultString =[[ NSString alloc] initWithData:responseObject encoding:NSUTF8StringEncoding];
- }
列印出來的字串如所示:
看著列印出來的字串,開頭不是以‘{’(字典)或‘(’(數組)符號開頭,而是一串字元,所以我們需要把多餘的字串刪除。
- {
- NSString *changeStr = [StringObjects stringByReplacingOccurrencesOfString:@"renderReverse&&renderReverse(" withString:@""];
- NSString *jsonStr = [changeStr substringToIndex:tempStr.length-1];
- }
最後把解析string轉data,再把data轉 字典:
- {
- NSMutableDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[jsonStr dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
- }
最後把字典輸出查看是否還是空。
Objective-C中關於請求返回NSData資料解析成NSDictionary或NSArray的方法