变更记录

序号 录入时间 录入人 备注
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];

效果图

(无)

备注

(无)

results matching ""

    No results matching ""