JSON数据与NSDictionary和NSArray之间的转化

来源:互联网 发布:期货配资软件 编辑:程序博客网 时间:2024/06/05 17:37

在一次项目中,需要将数组作为字典的value上传给后台,查询发现,数组是不能直接作为value上传给后台的,需要将数组转化为json串才可以。顺便就查询总结了下字典,数组和json之间的相互转化。

一.将字典或者数组转化为json串

- (NSData *)toJSONData:(id)theData{    NSError *error = nil;    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData                                                      options:NSJSONWritingPrettyPrinted error:&error];    if ([jsonData length] > 0 && error == nil){        return jsonData;    }else{        return nil;    }}NSString *jsonString = [[NSString alloc] initWithData:jsonData                                                 encoding:NSUTF8StringEncoding];

使用例子:

//数组转为json串 NSData *jsonData = [self toJSONData:array];    NSString *jsonString = [[NSString alloc] initWithData:jsonData                                                 encoding:NSUTF8StringEncoding];
- (NSData *)toJSONData:(id)theData{    NSError *error = nil;    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData                                                       options:NSJSONWritingPrettyPrinted                                                         error:&error];    if ([jsonData length] > 0 && error == nil){        return jsonData;    }else{        return nil;    }}

二.将json转为数组或者字典

[jsonString dataUsingEncoding:NSASCIIStringEncoding];// 将JSON串转化为字典或者数组- (id)toArrayOrNSDictionary:(NSData *)jsonData{    NSError *error = nil;    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData                                                   options:NSJSONReadingAllowFragments                                                      error:&error];    if (jsonObject != nil && error == nil){        return jsonObject;    }else{        // 解析错误         return nil;    }}

使用例子:

//json转数组NSData *data90 = [jsonString dataUsingEncoding:NSASCIIStringEncoding];    NSArray *arr = [self toArrayOrNSDictionary:data90];
- (id)toArrayOrNSDictionary:(NSData *)jsonData{    NSError *error = nil;    id jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData                                                    options:NSJSONReadingAllowFragments                                                      error:&error];    if (jsonObject != nil && error == nil){        return jsonObject;    }else{        // 解析错误        return nil;    }}
0 0
原创粉丝点击