【iOS】NSData,NSArray,NSDictionary,NSString轉(zhuǎn)換

引言

在iOS 5 中,蘋(píng)果引入了一個(gè)解析JSON串的NSJSONSerialization類。
通過(guò)該類,我們可以完成JSON數(shù)據(jù)與NSDictionary和NSArray之間的轉(zhuǎn)化。
以前,我記得我用的是第三方的插件。但是,蘋(píng)果出了這套解析后,效率也大大了超過(guò)了,所有的解析第三方類庫(kù)。所以,推薦使用NSJSONSerialization類來(lái)完成轉(zhuǎn)化。

互相轉(zhuǎn)換

  • 將NSDictionary或NSArray轉(zhuǎn)化為JSON串
- (NSData *)toJSONData:(id)obj{
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:obj options:NSJSONWritingPrettyPrinted error:&error];
    if ([jsonData length] > 0 && error == nil){
        return jsonData;
    }else{
        return nil;
    }
}
//調(diào)用方法的返回,得到SON串
NSString *jsonString = [[NSString alloc] initWithData:jsonData                                             encoding:NSUTF8StringEncoding];
  • 將JSON串轉(zhuǎn)化為NSDictionary或NSArray
  1. NSString ---> NSData
[jsonString dataUsingEncoding:NSUTF8StringEncoding];
  1. NSData ---> NSDictionary或NSArray
- (id)toArrayOrNSDictionary:(NSData *)jsonData{
    NSError *error = nil;
    id jsonObjc = [NSJSONSerialization JSONObjectWithData:jsonData                                                options:NSJSONReadingAllowFragments error:&error];
    if (jsonObject != nil && error == nil){
        return jsonObjc;
    }else{
         return nil;
    }
}

封裝分類

為了使用更加方便快捷,代碼規(guī)范,建議使用分類封裝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容