Skip to content

Latest commit

 

History

History
87 lines (59 loc) · 2.23 KB

Note_00180_20160512.md

File metadata and controls

87 lines (59 loc) · 2.23 KB

变更记录

序号 录入时间 录入人 备注
1 2016-05-12 Alfred Jiang -

方案名称

语法 - NSString \ NSData \ NSArray \ NSDictionary 格式转换 ( NSArray / NSDictionary <=> NSData <=> NSString )

关键字

语法 \ 数据存储 \ 格式转换 \ NSString \ NSData \ NSArray \ NSDictionary \ NSArray / NSDictionary <=> NSData <=> NSString

需求场景

  1. 进行 NSString \ NSData \ NSArray \ NSDictionary 格式转换

参考链接

  1. Sina - NSJSONSerialization-JSON数据与NSDictionary和NSArray之间的转化

详细内容

1. NSArray / NSDictionary <=> NSData ( Json )
// 将字典或者数组转化为JSON串
- (NSData *)toJSONData:(id)data{
    
    if (!data) {
        
        NSLog(@"Please Check %s parameter",__FUNCTION__);
        return nil;
    }
    
    NSError *error = nil;
    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:data
                                                       options:NSJSONWritingPrettyPrinted
                                                         error:&error];
    
    if ([jsonData length] != 0 && error == nil){
        
        return jsonData;
    }
    else{
        
        return nil;
    }
}

// 将JSON串转化为字典或者数组
- (id)toArrayOrDictionary:(NSData *)jsonData{
    
    if (!jsonData || [jsonData length] == 0) {
        
        NSLog(@"Please Check %s parameter",__FUNCTION__);
        return nil;
    }
    
    NSError *error = nil;
    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData
                                                    options:NSJSONReadingAllowFragments
                                                      error:&error];
    
    if (jsonObject != nil && error == nil){
        
        return jsonObject;
    }
    else{
        
        return nil;
    }
}
3. NSData <=> NSString ( Json )
NSData *jsonData = [jsonString dataUsingEncoding:NSASCIIStringEncoding];

NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSASCIIStringEncoding];

效果图

(无)

备注

(无)