iOS 開發(fā)中經常需要將對象轉換為 JSON 數(shù)組,以便進行數(shù)據傳輸或存儲。在此我們介紹一個 iOS 平臺上常用的方式:
- (NSString *)jsonStringWithArray:(NSArray *)array { NSError *error = nil; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:0 error:&error]; NSString *jsonString = nil; if (!jsonData) { NSLog(@"Error:%@", error); } else { jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; } return jsonString; }
以上代碼為一個可以將傳入的數(shù)組轉換為 JSON 字符串的函數(shù)。使用 NSJSONSerialization 類的 dataWithJSONObject 方法可以將數(shù)組直接轉換為 JSON 格式的 NSData 數(shù)據。若轉換成功則將該 NSData 數(shù)據轉換為 NSString 格式并返回。
NSMutableArray *myArray = [NSMutableArray array]; NSDictionary *dict1 = @{@"id": @"1", @"name": @"Tom"}; NSDictionary *dict2 = @{@"id": @"2", @"name": @"Jerry"}; [myArray addObject:dict1]; [myArray addObject:dict2]; NSString *jsonString = [self jsonStringWithArray:myArray]; NSLog(@"jsonString == %@", jsonString);
以上代碼為一個例子,在 NSMutableArray 對象中添加了兩個 NSDictionary 類型的元素。通過調用 jsonStringWithArray 函數(shù),將 myArray 轉換為 JSON 字符串并打印輸出。
在實際開發(fā)中,我們可能還需要根據需求對 JSON 格式進行一定的處理,例如將數(shù)據按照一定的格式進行排序、去重等。此時可以使用輕量級的第三方庫來進行 JSON 數(shù)據的處理,例如 JSONKit、SBJson 等。
總之,JSON 數(shù)據已成為現(xiàn)代化應用程序中的核心即時數(shù)據交換格式,掌握 JSON 數(shù)組對象的轉換方法對于 iOS 開發(fā)人員來說是十分必要的。