iOS開發(fā)中,經(jīng)常需要將數(shù)據(jù)轉(zhuǎn)換為json格式以便于網(wǎng)絡(luò)傳輸或者存儲。現(xiàn)在我們來學(xué)習(xí)一下iOS中如何將對象轉(zhuǎn)換為json格式。
在iOS中,我們可以用Foundation框架中的NSJSONSerialization類來實現(xiàn)將對象轉(zhuǎn)換為json。NSJSONSerialization提供了兩個方法將對象轉(zhuǎn)換為json:一個是將對象轉(zhuǎn)換為NSData類型,另一個是將對象轉(zhuǎn)換為NSString類型。
// 將對象轉(zhuǎn)換為NSData類型的json NSData *jsonData = [NSJSONSerialization dataWithJSONObject:Obj options:NSJSONWritingPrettyPrinted error:&error]; // 將對象轉(zhuǎn)換為NSString類型的json NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
其中,參數(shù)Obj為需要轉(zhuǎn)換的對象,options為轉(zhuǎn)換選項,error為錯誤信息。我們可以選擇NSJSONWritingPrettyPrinted選項來讓輸出的json格式更加易讀。
需要注意的是,Obj必須是NSArray或NSDictionary類型,否則會拋出異常或者返回錯誤信息。
下面是一個完整的例子,將一個包含字符串和數(shù)字的數(shù)組轉(zhuǎn)換為json格式:
NSArray *array = @[@"Hello", @123456, @"World", @(3.1415926535)]; NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; NSLog(@"%@", jsonString);
輸出的json格式如下:
[ "Hello", 123456, "World", 3.1415926535 ]
通過學(xué)習(xí),我們可以看到,使用NSJSONSerialization很容易地將對象轉(zhuǎn)換為json格式,并且可以選擇輸出格式,方便我們進(jìn)行數(shù)據(jù)的傳輸和存儲。