【iOS】NSData,NSArray,NSDictionary,NSString轉換

引言

在iOS 5 中,蘋果引入了一個解析JSON串的NSJSONSerialization類。
通過該類,我們可以完成JSON數據與NSDictionary和NSArray之間的轉化。
以前,我記得我用的是第三方的插件。但是,蘋果出了這套解析后,效率也大大了超過了,所有的解析第三方類庫。所以,推薦使用NSJSONSerialization類來完成轉化。

互相轉換

  • 將NSDictionary或NSArray轉化為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;
    }
}
//調用方法的返回,得到SON串
NSString *jsonString = [[NSString alloc] initWithData:jsonData                                             encoding:NSUTF8StringEncoding];
  • 將JSON串轉化為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;
    }
}

封裝分類

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容