在 iOS 開發(fā)中,我們經(jīng)常需要將數(shù)據(jù)格式從 iOS 原生格式轉(zhuǎn)換成 JSON 格式進(jìn)行網(wǎng)絡(luò)傳輸或者保存到本地。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,已經(jīng)成為了現(xiàn)代網(wǎng)絡(luò)應(yīng)用之間數(shù)據(jù)交互的事實(shí)標(biāo)準(zhǔn)。
以下是一份 iOS 轉(zhuǎn)換為 JSON 的基礎(chǔ)代碼:
// 創(chuàng)建一個 NSDictionary NSDictionary *dict = @{@"name":@"Tom",@"age":@(18)}; // 轉(zhuǎn)成 JSON 格式的字符串 NSError *error; NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error]; NSString *jsonStr = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; // 輸出 JSON 字符串 NSLog(@"%@",jsonStr);
在上述代碼中,首先我們先創(chuàng)建了一個 NSDictionary 對象,然后使用 NSJSONSerialization 類的 dataWithJSONObject 方法將 NSDictionary 轉(zhuǎn)換成 NSData 格式,再將 NSData 格式轉(zhuǎn)換成 NSString 格式,從而得到 JSON 格式的字符串。
在轉(zhuǎn)換過程中,NSJSONWritingPrettyPrinted 是一個可選參數(shù),它可以讓生成的 JSON 格式的字符串更易于閱讀。如果去掉該參數(shù),輸出的 JSON 字符串是沒有格式的。
在使用 JSON 格式進(jìn)行數(shù)據(jù)交互時,建議使用第三方庫來方便地進(jìn)行解析和封裝。iOS 中比較流行的 JSON 解析庫有:JSONKit、YAJL、SBJson、TouchJSON、NSJSONSerialization 等。